https://github.com/laststance/skills-desktop
Visualize installed Skills and symlink status across AI agents
https://github.com/laststance/skills-desktop
electron macos skills
Last synced: about 1 month ago
JSON representation
Visualize installed Skills and symlink status across AI agents
- Host: GitHub
- URL: https://github.com/laststance/skills-desktop
- Owner: laststance
- Created: 2026-01-30T02:08:49.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-05-12T15:11:55.000Z (about 1 month ago)
- Last Synced: 2026-05-12T15:39:12.882Z (about 1 month ago)
- Topics: electron, macos, skills
- Language: TypeScript
- Homepage: https://skills-desktop.vercel.app
- Size: 76 MB
- Stars: 21
- Watchers: 0
- Forks: 2
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Skills Desktop
> Visualize installed Skills and symlink status across AI agents
[](https://opensource.org/licenses/MIT)
[](https://www.apple.com/macos/)
[](https://codecov.io/gh/laststance/skills-desktop)
Skills Desktop provides a GUI to manage and monitor skills installed via [`npx skills add `](https://github.com/vercel-labs/skills). It displays the central skill repository (`~/.agents/skills/`) and shows symlink status for each supported AI agent.
## Features
- **44 AI Agents Supported** - Auto-detects Claude Code, Cursor, Codex, Gemini CLI, and more
- **Symlink Status Visualization** - Valid (✓), Broken (◐), Missing (○) indicators
- **44 Themes** - 34 OKLCH color themes (17 hues × light/dark) + 2 pure neutral + 8 tinted neutral
- **Auto Update** - Automatic updates via GitHub Releases
## Supported Agents
| Agent | Path |
| ---------------- | --------------------------- |
| Claude Code | `~/.claude/skills/` |
| Cursor | `~/.cursor/skills/` |
| OpenAI Codex | `~/.codex/skills/` |
| Gemini CLI | `~/.gemini/skills/` |
| GitHub Copilot | `~/.github-copilot/skills/` |
| Cline | `~/.cline/skills/` |
| Roo Code | `~/.roo-code/skills/` |
| Aider | `~/.aider/skills/` |
| Windsurf | `~/.codeium/skills/` |
| Zed | `~/.zed/skills/` |
| Continue | `~/.continue/skills/` |
| _...and 33 more_ | |
## Installation
Download the latest release from [GitHub Releases](https://github.com/laststance/skills-desktop/releases).
| Architecture | Download |
| ------------------------ | -------------------------------- |
| Apple Silicon (M1/M2/M3) | `skills-desktop-x.x.x-arm64.dmg` |
| Intel Mac | `skills-desktop-x.x.x-x64.dmg` |
## Development
### Prerequisites
- Node.js 20+
- pnpm 9+
### Setup
```bash
# Install dependencies
pnpm install
# Start development
pnpm dev
# Type check
pnpm typecheck
# Lint
pnpm lint
```
### Testing
```bash
# Unit + browser tests (Vitest)
pnpm test
# E2E tests (Playwright Electron, macOS only)
pnpm test:e2e
```
| Suite | Command | Runner |
| ----- | --------------- | -------------------------------------------------------------------------- |
| Unit | `pnpm test` | Vitest (Node + browser mode via `*.browser.test.tsx`) |
| E2E | `pnpm test:e2e` | Playwright Electron — boots the real app per spec, isolated HOME each test |
E2E specs live in `e2e/spec/*.e2e.ts`. The suite uses `cp -al` hardlink snapshots so each test starts from a fresh, populated `~/.agents/skills/` without re-running the skills CLI installer (~50 ms reset). CI runs on `macos-latest` (`.github/workflows/e2e.yml`); failures upload `playwright-report/` and `test-results/` as artifacts (traces + videos retained on failure).
> **⚠️ Hardlink caveat for spec authors.** Hardlinked files share inodes
> across every working HOME, so in-place edits (`writeFileSync` over an
> existing `SKILL.md`, `appendFileSync`, etc.) corrupt the snapshot for
> every subsequent test. Safe ops only: `unlink`, `rmdir`, `mkdir` +
> `writeFile` of NEW paths. See `e2e/fixtures/isolated-home.ts:44-50`
> for the canonical safe-ops list.
### Build
```bash
# Build for macOS (requires code signing)
APPLE_KEYCHAIN_PROFILE=skills-desktop pnpm build:mac
```
## Tech Stack
| Component | Technology |
| --------- | ---------------------------------------------------- |
| Framework | Electron 41 |
| Frontend | React 19 + TypeScript |
| State | Redux Toolkit + @laststance/redux-storage-middleware |
| Styling | Tailwind CSS + shadcn/ui |
| Build | electron-vite |
## Project Structure
```
src/
├── main/ # Electron main process
├── preload/ # Context bridge (IPC)
├── renderer/ # React frontend
└── shared/ # Shared types
```
## Related
- [Skills CLI](https://github.com/vercel-labs/skills) - Install skills via CLI
- [Skills Registry](https://skills.sh) - Browse available skills
- [Skills宝](https://skilery.com) - Chinese search and install hub for skills
- [Agent Skills Spec](https://agentskills.io) - Skills specification
## License
MIT - [Laststance.io](https://github.com/laststance)