https://github.com/amarbel-llc/purse-first
Nix-based package framework for Claude Code: bundles CLIs, MCP servers, and skills into composable plugins; ships go-mcp/rust-mcp libraries and a marketplace CLI
https://github.com/amarbel-llc/purse-first
claude-code golang mcp nix-flake package-framework plugin-system rust
Last synced: 28 days ago
JSON representation
Nix-based package framework for Claude Code: bundles CLIs, MCP servers, and skills into composable plugins; ships go-mcp/rust-mcp libraries and a marketplace CLI
- Host: GitHub
- URL: https://github.com/amarbel-llc/purse-first
- Owner: amarbel-llc
- License: mit
- Created: 2026-02-14T16:09:44.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2026-05-24T00:58:31.000Z (about 1 month ago)
- Last Synced: 2026-05-24T02:27:03.754Z (about 1 month ago)
- Topics: claude-code, golang, mcp, nix-flake, package-framework, plugin-system, rust
- Language: MDX
- Size: 3.7 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 45
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# purse-first
A package framework for bundling CLIs, MCP servers, and skills into composable, Nix-built packages for humans and agents like Claude Code.
## Architecture
purse-first has three layers:
| Layer | Description |
|-------|-------------|
| **Protocol** | A convention for Nix derivations to declare Claude Code capabilities via well-known paths under `share/purse-first/` |
| **CLI** | The `purse-first` binary — implements tool routing (hooks), marketplace generation, installation, and validation |
| **Libraries** | `go-mcp` and `rust-mcp` — building blocks for creating MCP servers that conform to the protocol |
## Package Flavors
Packages come in three flavors:
| Flavor | Description | Examples |
|--------|-------------|----------|
| **MCP package** | Ships an MCP server with optional tool mappings | grit, get-hubbed, lux |
| **Skill package** | Ships skills only | robin, tap-dancer, bob |
| **MCP + Skill package** | Ships both MCP server and skills | chix |
## Current Packages
- **grit** (MCP) — Git operations via MCP: stage, commit, push, log, blame, and more
- **get-hubbed** (MCP) — GitHub CLI wrapper via MCP: issues, pull requests, and repos
- **lux** (MCP) — LSP multiplexer via MCP: hover, definitions, references, and symbols
- **chix** (MCP + Skill) — Nix MCP server and skills for Claude Code: build, evaluate, search, and manage flakes
- **robin** (Skill) — BATS integration testing skill with bundled assertion libraries, sandcastle isolation, and justfile patterns
- **tap-dancer** (Skill) — TAP-14 writer libraries (Go + Rust) and skill for producing spec-compliant TAP output
- **bob** (Skill) — purse-first's own skill package: plugin-mcp, context-saving, and go-cli-framework skills
## Getting Started
purse-first packages are built with Nix and installed via the `purse-first` CLI. A **marketplace** is an aggregation of packages into a single Claude Code plugin (the `.claude-plugin/` output).
### Installation
```sh
# Install purse-first CLI
nix profile install github:friedenberg/purse-first
# Generate a marketplace from packages
purse-first marketplace generate --config marketplace-config.json --output ~/.claude/plugins/marketplace
```
For the complete protocol specification, see [docs/purse-first-protocol.md](docs/purse-first-protocol.md).
## Development
This is a Nix-based project. See the project-specific CLAUDE.md for build commands and architecture details.
```sh
# Build the project
just build
# Run tests
just test
# Format code
just fmt
```