{"id":46047780,"url":"https://github.com/helmcode/agent_crew_api","last_synced_at":"2026-03-13T16:01:24.802Z","repository":{"id":339065430,"uuid":"1160311249","full_name":"helmcode/agent_crew_api","owner":"helmcode","description":"Orchestration backend for multi-agent AI teams","archived":false,"fork":false,"pushed_at":"2026-03-09T21:44:49.000Z","size":681,"stargazers_count":10,"open_issues_count":8,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-09T23:13:54.359Z","etag":null,"topics":["ai-agents","ai-team","claude-code"],"latest_commit_sha":null,"homepage":"https://agentcrew.helmcode.com/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helmcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-17T19:42:55.000Z","updated_at":"2026-03-09T21:39:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/helmcode/agent_crew_api","commit_stats":null,"previous_names":["helmcode/agent_crew_api"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/helmcode/agent_crew_api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helmcode%2Fagent_crew_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helmcode%2Fagent_crew_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helmcode%2Fagent_crew_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helmcode%2Fagent_crew_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helmcode","download_url":"https://codeload.github.com/helmcode/agent_crew_api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helmcode%2Fagent_crew_api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30469843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","ai-team","claude-code"],"created_at":"2026-03-01T08:03:27.281Z","updated_at":"2026-03-13T16:01:24.792Z","avatar_url":"https://github.com/helmcode.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AgentCrew API\n\nOrchestration backend for multi-agent AI teams. AgentCrew deploys and manages teams of Claude Code agents that collaborate through NATS messaging, with support for both Docker and Kubernetes runtimes.\n\n## Architecture\n\n```\n┌─────────────┐       ┌──────────┐       ┌───────────────────────────────┐\n│  Frontend /  │       │          │       │  Agent Container / Pod        │\n│  API Client  │──────▶│  API     │──────▶│  ┌─────────┐  ┌───────────┐ │\n│              │  HTTP │  Server  │       │  │ Sidecar  │──│ Claude    │ │\n└─────────────┘       │          │       │  │ (Go)     │  │ Code CLI  │ │\n                      └────┬─────┘       │  └────┬─────┘  └───────────┘ │\n                           │             └───────┼─────────────────────┘\n                           │                     │\n                      ┌────▼─────────────────────▼──┐\n                      │         NATS Server          │\n                      │     (JetStream enabled)      │\n                      └─────────────────────────────┘\n```\n\n- **API Server** (`cmd/api`) — Fiber-based REST API that manages team lifecycles, agent deployments, and chat routing\n- **Agent Sidecar** (`cmd/sidecar`) — Runs inside each agent container, bridging NATS messages to the Claude Code CLI process\n- **NATS** — Message bus for real-time communication between the API server and agents\n\n## Tech Stack\n\n| Component | Technology |\n|-----------|-----------|\n| Language | Go 1.25+ |\n| HTTP Framework | [Fiber](https://gofiber.io/) v2 |\n| Database | SQLite via [GORM](https://gorm.io/) |\n| Messaging | [NATS](https://nats.io/) with JetStream |\n| Container Runtimes | Docker Engine API, Kubernetes client-go |\n| WebSocket | Fiber WebSocket middleware |\n\n## Quick Start\n\n### Using Docker Compose\n\n```bash\n# Clone the repository\ngit clone https://github.com/helmcode/agent_crew_api.git\ncd agent_crew_api\n\n# Copy environment template\ncp .env.example .env\n\n# Start all services (API + NATS)\ndocker compose up -d\n\n# Verify the API is running\ncurl http://localhost:8080/health\n```\n\n### Local Development\n\n```bash\n# Build both binaries\nmake build-all\n\n# Run tests\nmake test\n\n# Lint\nmake lint\n\n# Build Docker images\nmake build-images\n\n# Clean build artifacts\nmake clean\n```\n\n## API Endpoints\n\n### Health\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `GET` | `/health` | Health check |\n\n### Teams\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `GET` | `/api/teams` | List all teams |\n| `POST` | `/api/teams` | Create a team (optionally with agents) |\n| `GET` | `/api/teams/:id` | Get a team by ID |\n| `PUT` | `/api/teams/:id` | Update a team |\n| `DELETE` | `/api/teams/:id` | Delete a team |\n| `POST` | `/api/teams/:id/deploy` | Deploy team infrastructure and agents |\n| `POST` | `/api/teams/:id/stop` | Stop and teardown team |\n\n### Agents\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `GET` | `/api/teams/:id/agents` | List agents in a team |\n| `POST` | `/api/teams/:id/agents` | Add an agent to a team |\n| `GET` | `/api/teams/:id/agents/:agentId` | Get an agent |\n| `PUT` | `/api/teams/:id/agents/:agentId` | Update an agent |\n| `DELETE` | `/api/teams/:id/agents/:agentId` | Remove an agent |\n\n### Chat\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `POST` | `/api/teams/:id/chat` | Send a chat message to the team |\n| `GET` | `/api/teams/:id/messages` | Get chat message history |\n\n### Settings\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `GET` | `/api/settings` | Get application settings |\n| `PUT` | `/api/settings` | Update a setting |\n\n### WebSocket\n\n| Path | Description |\n|------|-------------|\n| `ws://host/ws/teams/:id/logs` | Stream agent logs in real-time |\n| `ws://host/ws/teams/:id/activity` | Stream team activity events |\n\n## Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `NATS_AUTH_TOKEN` | *(optional)* | NATS authentication token |\n| `NATS_URL` | `nats://nats:4222` | NATS server URL (sidecar) |\n| `DATABASE_PATH` | `agentcrew.db` | SQLite database file path |\n| `LISTEN_ADDR` | `:8080` | HTTP server listen address |\n| `RUNTIME` | `docker` | Container runtime: `docker` or `kubernetes` |\n| `KUBECONFIG` | `~/.kube/config` | Kubeconfig path (Kubernetes runtime only) |\n\n## Runtime Support\n\nAgentCrew supports two container runtimes, selected via the `RUNTIME` environment variable:\n\n### Docker (default)\n\nEach team gets a Docker network, workspace volume, and NATS container. Agents run as Docker containers attached to the team network.\n\n### Kubernetes\n\nEach team gets a Kubernetes namespace with a workspace PVC, NATS Deployment + Service, and API key Secret. Agents run as Pods in the team namespace. Supports both in-cluster and kubeconfig-based authentication.\n\n## Project Structure\n\n```\n.\n├── cmd/\n│   ├── api/              # Orchestrator API server entrypoint\n│   ├── sidecar/          # Agent sidecar entrypoint\n│   └── testserver/       # Test server with mock runtime\n├── internal/\n│   ├── api/              # Fiber routes, handlers, middleware, DTOs\n│   ├── claude/           # Claude Code process manager (sidecar)\n│   ├── models/           # GORM models and SQLite database setup\n│   ├── nats/             # NATS client wrapper for pub/sub messaging\n│   ├── permissions/      # Permission gate logic for agent actions\n│   ├── protocol/         # Shared message types (JSON protocol)\n│   └── runtime/          # Container runtime interface (Docker, Kubernetes)\n├── build/\n│   ├── api/              # API server Dockerfile\n│   └── agent/            # Agent container Dockerfile\n├── docker-compose.yml    # Local development stack\n├── Makefile              # Build, test, and lint commands\n├── go.mod\n└── go.sum\n```\n\n## License\n\nThis project is licensed under the [GNU Affero General Public License v3.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelmcode%2Fagent_crew_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelmcode%2Fagent_crew_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelmcode%2Fagent_crew_api/lists"}