Skip to content

A macOS application for discovering, browsing, and installing skills for AI coding assistants. Manage skills for Claude Code and Codex from GitHub repositories or your local filesystem.

Notifications You must be signed in to change notification settings

tddworks/SkillsManager

Repository files navigation

Skills Manager

Build Tests codecov Swift 6.2 Platform

A macOS application for discovering, browsing, and installing skills for AI coding assistants. Manage skills for Claude Code and Codex from GitHub repositories or your local filesystem.

Skills Manager Home

Browse and manage skills from GitHub repositories

Install Skills

Install Skill

Install skills to Claude Code and/or Codex with one click

Edit & Preview Skill

 Edit & Preview Skill

Edit skill files and preview documentation with markdown rendering

Features

  • Browse Remote Skills - Discover skills from GitHub repositories like anthropics/skills
  • View Local Skills - See skills already installed on your system
  • Multi-Repository Support - Add and manage multiple GitHub skill repositories
  • Install to Multiple Providers - Install skills to Claude Code (~/.claude/skills) and/or Codex (~/.codex/skills/public)
  • Provider Badges - Visual indicators showing where each skill is installed
  • Markdown Rendering - View skill documentation with full markdown support
  • Search & Filter - Quickly find skills by name or description
  • Uninstall Support - Remove skills from individual providers

Providers

Provider Skills Path Description
Claude Code ~/.claude/skills Anthropic's AI coding assistant
Codex ~/.codex/skills/public OpenAI's code generation tool

Requirements

  • macOS 15+
  • Swift 6.0+

Installation

Download (Recommended)

Download the latest release from GitHub Releases.

Build from Source

git clone https://github.com/tddworks/SkillsManager.git
cd SkillsManager
swift build -c release

Usage

Launch the app to browse available skills. Use the source dropdown to switch between:

  • Local - Skills installed on your system
  • Remote repositories - Skills from configured GitHub repos

Select a skill to view its details and documentation. Click "Install" to install a skill to your chosen providers.

Adding Repositories

  1. Click the source dropdown
  2. Select "Add Repository..."
  3. Enter a GitHub URL (e.g., https://github.com/anthropics/skills)
  4. Click "Add"

Development

Command Line (Swift Package Manager)

# Build the project
swift build

# Run all tests
swift test

# Run the app
swift run SkillsManager

Xcode (with SwiftUI Previews)

The project uses Tuist to generate Xcode projects with SwiftUI preview support.

# Install Tuist (if not installed)
brew install tuist

# Generate Xcode project
tuist generate

# Open in Xcode
open SkillsManager.xcworkspace

# Run tests via Tuist
tuist test

Architecture

Full documentation: docs/ARCHITECTURE.md

Skills Manager uses a layered architecture with rich domain models:

SkillLibrary (@Observable)
├── localCatalog: SkillsCatalog     ← Installed skills (claude + codex)
└── remoteCatalogs: [SkillsCatalog] ← GitHub skill repositories
    └── skills: [Skill]              ← Each catalog OWNS its skills
Layer Location Purpose
Domain Sources/Domain/ Rich models with behavior (SkillsCatalog, Skill)
Infrastructure Sources/Infrastructure/ Repositories, clients, parsers, installers
App Sources/App/ SwiftUI views consuming domain directly (no ViewModel)

Key Design Decisions

  • Rich Domain Models - Behavior encapsulated in models (not anemic data)
  • Tell-Don't-Ask - Objects manage their own state; callers tell objects what to do
  • Protocol-Based DI - @Mockable protocols for testability
  • Chicago School TDD - Test state changes, not interactions
  • No ViewModel Layer - Views consume domain models directly

Release & Auto-Updates

The project includes CI/CD workflows and Sparkle integration for automatic updates.

Setup Sparkle Keys

Generate EdDSA keys for signing updates:

# Build first to get Sparkle tools
swift build

# Generate key pair
./scripts/sparkle-setup.sh

The script will:

  1. Generate a public/private EdDSA key pair
  2. Optionally update Info.plist with the public key
  3. Display the private key to add as a GitHub secret

Required GitHub Secrets

Secret Purpose
APPLE_CERTIFICATE_P12 Base64-encoded Developer ID certificate
APPLE_CERTIFICATE_PASSWORD Certificate password
APP_STORE_CONNECT_API_KEY_P8 Base64-encoded App Store Connect API key
APP_STORE_CONNECT_KEY_ID API key ID
APP_STORE_CONNECT_ISSUER_ID Team issuer ID
SPARKLE_EDDSA_PRIVATE_KEY EdDSA private key for signing updates
CODECOV_TOKEN (Optional) Codecov upload token

Creating a Release

Releases are triggered by:

  • Pushing a version tag: git tag v1.0.0 && git push --tags
  • Manual workflow dispatch with version input

The release workflow will:

  1. Build universal binary (arm64 + x86_64)
  2. Sign with Developer ID
  3. Notarize with Apple
  4. Create DMG and ZIP artifacts
  5. Publish GitHub Release
  6. Update Sparkle appcast for auto-updates

Project Structure

SkillsManager/
├── Sources/
│   ├── Domain/
│   │   ├── Models/          # Skill, SkillsCatalog (@Observable class), Provider
│   │   └── Protocols/       # SkillRepository, SkillInstaller (@Mockable)
│   ├── Infrastructure/
│   │   ├── Repositories/    # LocalSkillRepository, ClonedRepo, MergedRepo
│   │   ├── Local/           # ProviderPathResolver, LocalSkillWriter
│   │   ├── Parser/          # SkillParser (YAML frontmatter)
│   │   └── Installer/       # FileSystemSkillInstaller
│   └── App/
│       ├── Views/           # SwiftUI views (consume domain directly)
│       └── SkillLibrary.swift   # @Observable coordinator for catalogs
├── Tests/
│   ├── DomainTests/         # SkillTests, SkillsCatalogTests
│   ├── AppTests/            # SkillLibraryTests
│   └── InfrastructureTests/
├── Project.swift            # Tuist configuration
└── Package.swift            # SPM configuration

License

MIT License - see LICENSE for details.

About

A macOS application for discovering, browsing, and installing skills for AI coding assistants. Manage skills for Claude Code and Codex from GitHub repositories or your local filesystem.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published