Nucleus is an open source, vendor-agnostic secure execution runtime for AI agents.
License: MIT Repository: Public (github.com/coproduct-opensource/nucleus)
- Anthropic/Claude-specific code or references
- OpenAI-specific code or references
- Any LLM vendor names, SDKs, or APIs
- Vendor-specific credential formats (Claude OAuth, OpenAI API keys)
- Vendor-specific cost models or pricing
- Generic credential passing (
credentials.envwith arbitrary key-value pairs) - Work-type based policies (codegen, review, research) not LLM-specific
- Generic budget models (cost per second, max USD) without vendor rates
- Standard protocols (gRPC, SPIFFE, mTLS)
Bad (vendor-specific):
pub struct CredentialsSpec {
pub claude_oauth_token: Option<String>, // NO - vendor specific
pub anthropic_api_key: Option<String>, // NO - vendor specific
}Good (vendor-agnostic):
pub struct CredentialsSpec {
pub env: BTreeMap<String, String>, // Generic env vars
pub secret_ref: Option<String>, // Reference to external secret
}Bad (vendor-specific documentation):
# Pass your Claude API key
credentials:
claude_api_key: "sk-ant-..."Good (vendor-agnostic documentation):
# Pass credentials as environment variables
credentials:
env:
LLM_API_TOKEN: "your-token-here"Nucleus provides:
- Isolation: Firecracker microVMs with network/filesystem sandboxing
- Policy: Permission lattice (read/write/exec/network capabilities)
- Identity: SPIFFE workload identity for pods
- Observability: Structured logging, audit trails
Nucleus does NOT provide:
- LLM API integration (that's the orchestrator's job)
- Vendor-specific credential management
- AI-specific prompt handling
Orchestrators handle vendor-specific concerns and translate to nucleus's generic interface:
Orchestrator (vendor-aware) Nucleus (vendor-agnostic)
┌────────────────────────────┐ ┌────────────────────────────┐
│ Claude OAuth extraction │ │ PodSpec with generic: │
│ Anthropic rate limits │ ──► │ - credentials.env │
│ Claude Code SDK │ │ - policy profiles │
│ Vendor cost tracking │ │ - resource limits │
└────────────────────────────┘ └────────────────────────────┘
When writing tests, use generic placeholders:
LLM_API_TOKENnotANTHROPIC_API_KEYtest-token-123notsk-ant-...- Policy names like
codegen,reviewnotclaude_coding
All documentation should:
- Use "LLM" or "AI agent" not specific vendor names
- Show generic credential examples
- Reference the orchestrator layer for vendor integration
On init, read LOOPS.md (git-ignored, local only) and start any loops defined there.