Skip to main content

ui

Launch the web dashboard for visual skill management.

skillshare ui

Opens http://127.0.0.1:19420 in your default browser.

Flags

FlagDefaultDescription
-p, --projectRun in project mode (uses .skillshare/)
-g, --globalRun in global mode (uses ~/.config/skillshare/)
--port <port>19420HTTP server port
--host <host>127.0.0.1Bind address (use 0.0.0.0 for Docker)
--no-openfalseDon't open browser automatically
Auto-Detection

If .skillshare/config.yaml exists in the current directory, the dashboard automatically starts in project mode. Use -g to force global mode.

Examples

# Default: opens browser on localhost:19420
skillshare ui

# Project mode (manage .skillshare/ skills)
skillshare ui -p

# Custom port
skillshare ui --port 8080

# Docker / remote access
skillshare ui --host 0.0.0.0 --no-open

# Background mode
skillshare ui --no-open &

Dashboard Pages

PageDescription
DashboardOverview cards — skill count, target count, sync mode, version
SkillsSearchable skill grid with metadata. Click to view SKILL.md content
InstallInstall from local path, git URL, or GitHub shorthand
TargetsTarget list with status badges. Add/remove targets
SyncSync controls with dry-run toggle. Diff preview
CollectScan targets and collect selected skills back to source
BackupView backup list, restore snapshots, and clean up entries
Git SyncPush/pull source repo with dirty-state checks and force pull
SearchGitHub skill search with one-click install
ConfigYAML config editor with validation

Project Mode Differences

When running in project mode (-p), the dashboard adapts:

  • "Project" badge in the sidebar indicates project mode
  • Git Sync page is hidden (project skills use the project's own git)
  • Backup & Restore page is hidden (use version control instead)
  • Tracked Repos section is hidden from Dashboard (not applicable)
  • Config page shows .skillshare/config.yaml instead of the global config
  • Available targets lists project-level targets (e.g., .claude/skills/ relative to project root)
  • Install automatically reconciles skills: entries in the project config

UI Preview

Install flowDashboard overviewSkills browserSkill detail viewSync controlsGitHub search view

REST API

The web dashboard exposes a REST API at /api/. All endpoints return JSON.

MethodPathDescription
GET/api/overviewSkill/target counts, mode, version
GET/api/skillsList all skills with metadata
GET/api/skills/{name}Skill detail + SKILL.md content
DELETE/api/skills/{name}Uninstall a skill
GET/api/targetsList targets with status
POST/api/targetsAdd a target
DELETE/api/targets/{name}Remove a target
POST/api/syncRun sync (supports dryRun, force)
GET/api/diffDiff between source and targets
GET/api/search?q=Search GitHub for skills
POST/api/installInstall a skill from source
GET/api/configGet config as YAML
PUT/api/configUpdate config YAML

Docker Usage

The playground container includes pre-built frontend assets. To use the web UI inside Docker:

make sandbox-up
make sandbox-shell

# Inside container:
skillshare ui --host 0.0.0.0 --no-open

Then open http://localhost:19420 on your host machine (port 19420 is mapped automatically).

Project Mode

The web dashboard fully supports project-level skills:

cd my-project
skillshare ui -p

Or simply skillshare ui if .skillshare/config.yaml exists (auto-detected).

The dashboard reads and writes .skillshare/config.yaml, syncs to project-local targets, and reconciles remote skill entries after install — just like the CLI.

Architecture

The web UI is a single-page React application embedded in the Go binary via go:embed. No external dependencies are needed at runtime — just the skillshare binary.

skillshare ui
├── Go HTTP server (net/http)
│ ├── /api/* → REST API handlers
│ └── /* → Embedded React SPA
└── Browser opens http://127.0.0.1:19420