CCP is an application platform built on top of Claude Code. It provides a language-agnostic HTTP API that lets you build apps in any language that leverage Claude Code's capabilities.
Status: Alpha - Core functionality works. Suitable for local development and experimentation.
- ccm - CLI for managing apps and the Claude Code runtime
- ccpd - HTTP daemon that provides the API for apps
Apps declare their permissions in a manifest, and CCP enforces them at runtime.
- Claude Code CLI installed and authenticated
- Go 1.22+ (for building from source)
git clone https://github.com/syzygyhack/ccp.git
cd ccp
make installOr build manually:
go build -o ccm ./cmd/ccm
go build -o ccpd ./cmd/ccpd# Check that Claude Code is installed
ccm runtime status
# Install an official app
ccm install hello-world
# Or install from a local directory
ccm install ./apps/hello-world
# Or a Github repo
ccm install user/repo@v2.0.0
# Run it (daemon starts automatically)
ccm run hello-world# Official apps (from this repo's apps/ directory)
ccm install hello-world # Latest
ccm install hello-world@v1.0.0 # Specific tag
ccm install hello-world@a1b2c3d # Specific commit
# Third-party apps (from any GitHub repo)
ccm install user/repo # Latest from github.com/user/repo
ccm install user/repo@main # Specific branch
ccm install user/repo@v2.0.0 # Specific tag
# Local development
ccm install ./path/to/app # From local directoryApps installed from GitHub are version-locked to the exact commit SHA for security and reproducibility. Use ccm update to pull newer versions.
ccm list # List installed apps
ccm search # List official apps
ccm search <query> # Search official apps
ccm run <app> # Run an app
ccm update # Update all apps to latest
ccm update <app> # Update specific app
ccm uninstall <app> # Remove an appApps are directories with an app.yaml manifest:
name: my-app
version: 1.0.0
description: My CCP app
author: Your Name <you@example.com>
entrypoint:
script: main.py # or binary: ./my-app, or command: echo hello
permissions:
tools:
- Read
- Glob
- GrepYour app communicates with Claude Code via the HTTP API at $CCP_API_URL:
import httpx
import os
response = httpx.post(
f"{os.environ['CCP_API_URL']}/v1/run",
json={
"prompt": "What files are in this directory?",
"cwd": "/path/to/project",
"allowed_tools": ["Read", "Glob"]
}
)
print(response.json()["text"])See apps/ for official example apps.
To add an official app, submit a PR adding your app to the apps/ directory.
To share a third-party app, users can install directly from your GitHub repo:
ccm install yourusername/your-app- docs/API.md - HTTP API reference
- docs/APPS.md - App development guide
See CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details.