Chris Farhood 545950daf2 Add CLI formatter, fix env forwarding, rename job prefix to agent-claude-
- Add src/cli/ with format-event.ts (printClaudeStreamEvent) exported from
  CLIAdapterModule
- Fix env var forwarding: read from pod spec container env dynamically instead
  of static allowlist; agent config env overrides pod values
- Rename K8s Job prefix from agent- to agent-claude-
- Add fsGroupChangePolicy: "OnRootMismatch" to skip PVC chown on subsequent runs
- Add comprehensive test coverage (159 tests across 5 test files)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:47:27 -04:00

paperclip-adapter-claude-k8s

Paperclip adapter plugin that runs Claude Code agents as isolated Kubernetes Jobs instead of inside the main Paperclip process.

Features

  • Spawns agent runs as K8s Jobs with full pod isolation
  • Inherits container image, secrets, DNS, and PVC from the Paperclip Deployment automatically
  • Real-time log streaming from Job pods back to the Paperclip UI
  • Session resume via shared RWX PVC
  • Per-agent concurrency guard
  • Configurable resources, namespace, kubeconfig
  • Bedrock model support

Installation

Via Paperclip Adapter Manager

curl -X POST http://localhost:3100/api/adapters \
  -H "Content-Type: application/json" \
  -d '{"packageName": "paperclip-adapter-claude-k8s"}'

Local Development

curl -X POST http://localhost:3100/api/adapters \
  -H "Content-Type: application/json" \
  -d '{"localPath": "/path/to/paperclip-claude-k8s"}'

Configuration

See the agent configuration documentation for all available fields:

  • namespace — K8s namespace for Jobs (defaults to Deployment namespace)
  • image — Override container image
  • kubeconfig — Path to kubeconfig file
  • resources — CPU/memory requests and limits
  • timeoutSec — Run timeout (0 = no timeout)
  • retainJobs — Keep completed Jobs for debugging

Requirements

  • Kubernetes cluster with RBAC permissions to create Jobs, list Pods, and read Pod logs
  • Paperclip must be deployed on a RWX PVC mounted at /paperclip — this shared volume is required for session resume and workspace access
  • @paperclipai/adapter-utils >= 0.3.0

License

MIT

S
Description
No description provided
Readme 514 KiB
Languages
HTML 59%
TypeScript 38.9%
JavaScript 1.3%
CSS 0.8%