AI Agents
JJHub integrates Claude-powered AI agents as first-class citizens. Agents run in sandboxed cloud VMs with full VM-level isolation, can read and modify your repository, triage issues, review landing requests, and ship code - all orchestrated through the same Smithers-powered TSX workflow system that powers CI.AI Keys via Workflow Secrets
You provide your own API keys via repository secrets. There’s no platform-level AI metering or markup. Configure your key via repository secrets:Agents in Workflows
Agents are a<Task> with an agent prop in TSX workflows:
<Task> components running in the same workflow system. A compute task runs shell commands via Bun’s $, an agent task sends a prompt to an AI model.
Workspaces (Interactive)
For interactive agent work, use workspaces - cloud development environments where you can run AI agents interactively with full terminal access, SSH, and instant suspend/resume.Sandboxed Execution
Agent workflow steps run in isolated sandboxed VMs - full microVM-level isolation:- VM-level isolation - each agent runs in its own microVM with a separate kernel, stronger than container-based sandboxing
- Snapshot-cached boot - agent base environments (Bun + Smithers + dependencies) are pre-cached as snapshots for near-instant startup
- Ephemeral by default - each agent run gets a fresh VM that’s deleted when the task completes
- Repo clone - the VM clones the repo from
git.jjhub.techusing a short-lived read token, giving the agent full git history
VM Forking
A running agent VM can be forked to explore parallel approaches. The fork creates an exact copy of memory and disk without pausing the original agent. Use cases:- Try two different refactoring strategies simultaneously
- Explore multiple fix approaches for a failing test
- Branch an agent’s reasoning path without losing the original
Agent Capabilities
Agents can:- Read and write files in the repository
- Execute shell commands (in the VM)
- Create and manage issues
- Review landing requests
- Search code
- Access external APIs (for AI provider calls)
Streaming Output
Agent responses stream in real-time via SSE (Server-Sent Events) backed by PostgreSQL LISTEN/NOTIFY. Workflow logs display agent output as it arrives.Session API
The current public agent API is session-based:POST /api/repos/:owner/:repo/agent/sessionscreates an agent sessionPOST /api/repos/:owner/:repo/agent/sessions/:id/messagesappends a message- posting a user message dispatches a cloud VM-backed agent run
GET /api/repos/:owner/:repo/agent/sessions/:id/streamstreams assistant output and terminaldoneevents over SSE