v0.2.0 — Team mode
v0.2.0 — Team mode
claude-presence now coordinates Claude Code sessions across machines, not just on a single laptop. The stdio mode (claude-presence-mcp) is unchanged — solo and single-machine users keep using it as before. The HTTP team-mode server is opt-in.
Highlights
- HTTP transport via a new entrypoint
claude-presence-server, built onnode:httpwith the MCP Streamable HTTP transport - Bearer-token auth with RBAC — per-token names, three default scopes (
read/write/admin), optional per-tool overrides, full audit log - Official multi-arch Docker image at
ghcr.io/garniergeorges/claude-presence, signed with cosign (keyless OIDC), Trivy-scanned in CI - 3 deployment variants in
deploy/: localhost Compose, public-domain Compose with Caddy + auto HTTPS, raw Kubernetes manifests - Bilingual deploy guide in
docs/team-mode.mdanddocs/team-mode.fr.md, covering 4 paths (Compose / Caddy / systemd / Kubernetes)
What's NOT in this release
Reported to v0.3 to keep the scope reviewable:
- Postgres backend (the Repository stays sync + SQLite-only in v0.2)
- Helm chart
- Federation between team servers
- Per-user identity derived from the Bearer (the named tokens are the v0.2 approximation)
Stdio mode
claude-presence-mcp is completely unchanged. If your .mcp.json uses stdio today, nothing to do.
Quick start (team mode)
docker run -d --name cp \
-p 3471:3471 \
-v cp-data:/var/lib/claude-presence \
ghcr.io/garniergeorges/claude-presence:0.2.0
# Bootstrap the first admin token
docker exec cp node dist/server/index.js token create --name admin --scope admin
# Verify
curl http://localhost:3471/healthzFull guide: docs/team-mode.md (English) / docs/team-mode.fr.md (French).
Each Claude Code session points at the server via .mcp.json:
{
"mcpServers": {
"claude-presence": {
"type": "http",
"url": "https://your-server.example.com/mcp",
"headers": {
"Authorization": "Bearer cp_REPLACE_WITH_YOUR_TOKEN"
}
}
}
}Statistics
- Tests: 29 → 69 (+40), all passing in ~5 s
- CI: 6 jobs (Ubuntu + macOS × Node 18/20/22) + new Docker workflow (build, scan, sign, push)
- Image size: ~70 MB per architecture (multi-arch: amd64 + arm64)
- Trust model: cooperative on stdio, bearer-token-authenticated on HTTP
Image variants published
ghcr.io/garniergeorges/claude-presence:latestghcr.io/garniergeorges/claude-presence:0.2.0ghcr.io/garniergeorges/claude-presence:0.2ghcr.io/garniergeorges/claude-presence:0ghcr.io/garniergeorges/claude-presence:sha-<short>
Verify the cosign signature:
cosign verify \
--certificate-identity-regexp "https://github.com/garniergeorges/claude-presence/.+" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
ghcr.io/garniergeorges/claude-presence:0.2.0