AI agent orchestration platform with on-chain messaging via Algorand.
- Agent orchestration -- spawn, manage, and monitor Claude-powered agents
- Council discussions -- multi-agent deliberation with structured voting and follow-up chat
- AlgoChat -- on-chain encrypted messaging via Algorand (PSK / X25519)
- Self-improvement -- agents create work tasks, branch, validate, and open PRs autonomously
- Mobile chat client -- responsive Angular UI with real-time WebSocket updates
- MCP tools -- extensible tool system using the Model Context Protocol
- Bun -- runtime and package manager
- Angular 21 -- client UI
- SQLite -- persistence via
bun:sqlite - Algorand (
algosdk) -- on-chain messaging - Claude Agent SDK -- agent orchestration
- MCP SDK -- tool protocol
git clone https://github.com/CorvidLabs/corvid-agent.git
cd corvid-agent
bun install
cp .env.example .env # edit with your values
bun run build:client
bun run devThe server starts at http://localhost:3000.
server/ Bun HTTP + WebSocket server, agent process management
algochat/ AlgoChat on-chain messaging layer
db/ SQLite schema and queries
lib/ Shared utilities (logger, crypto, validation)
mcp/ MCP tool server
middleware/ HTTP/WS auth, CORS, startup security checks
process/ Agent lifecycle management
routes/ REST API routes
selftest/ Self-test service
work/ Task/work item management
ws/ WebSocket handlers
client/ Angular 21 SPA (standalone components, signals)
shared/ TypeScript types and WebSocket protocol shared between server and client
deploy/ Dockerfile, docker-compose, systemd unit, macOS LaunchAgent
e2e/ Playwright end-to-end tests
| Variable | Description | Default |
|---|---|---|
ALGOCHAT_MNEMONIC |
25-word Algorand account mnemonic | -- |
ALGORAND_NETWORK |
Algorand network (localnet, testnet, mainnet) |
testnet |
ALGOCHAT_SYNC_INTERVAL |
Polling interval for on-chain messages (ms) | 30000 |
ALGOCHAT_DEFAULT_AGENT_ID |
Default agent ID for AlgoChat | -- |
ALGOCHAT_OWNER_ADDRESSES |
Comma-separated Algorand addresses authorized for admin commands | -- (open) |
ALGOCHAT_PSK_URI |
Pre-shared key URI for encrypted AlgoChat channels | -- |
AGENT_NETWORK |
Network for agent sub-wallets | localnet |
ANTHROPIC_API_KEY |
Anthropic API key for Claude agents | -- |
PORT |
HTTP server port | 3000 |
BIND_HOST |
Bind address (127.0.0.1 for localhost, 0.0.0.0 for Docker/VM) |
127.0.0.1 |
API_KEY |
Bearer token for HTTP/WS auth (required when BIND_HOST is non-localhost) |
-- |
ALLOWED_ORIGINS |
Comma-separated CORS origins | * |
WALLET_ENCRYPTION_KEY |
AES-256 key for wallet encryption at rest | derived from mnemonic |
LOG_LEVEL |
Logging level (debug, info, warn, error) |
info |
GH_TOKEN |
GitHub token for work task PR creation | -- |
Copy .env.example to .env and fill in your values. Bun loads .env automatically.
bun test # unit tests
bun run test:e2e # Playwright e2e (requires AlgoKit localnet)See the deploy/ directory for production configurations:
Dockerfile+docker-compose.yml-- containerized deploymentcorvid-agent.service-- systemd unit for Linuxcom.corvidlabs.corvid-agent.plist-- macOS LaunchAgentdaemon.sh-- cross-platform daemon installernginx/+caddy/-- reverse proxy configs with TLS termination
See CONTRIBUTING.md for development setup and guidelines.
See SECURITY.md for responsible disclosure.