Agentpod
Portable Command Center - Mobile app to control OpenCode AI agents
Install / Use
/learn @rakeshgangwar/AgentpodREADME
AgentPod
A cross-platform application for running AI coding agents in isolated sandbox environments. Create, manage, and interact with containerized development workspaces powered by OpenCode.
Vision
"Portable Command Center" — Your personal AI-powered development environment:
- Sandboxed Workspaces: Each project runs in an isolated Docker container with its own tools, dependencies, and AI agent
- Multi-Platform: Desktop app (macOS, Windows, Linux) with mobile support (iOS, Android) via Tauri v2
- Self-Hosted: Run locally or deploy to your own server — no vendor lock-in
- AI-Native: Built around OpenCode, supporting 75+ LLM providers (Claude, GPT, GitHub Copilot, Ollama, etc.)
Architecture
┌─────────────────────────────────────────────────────────────────────────────┐
│ AGENTPOD ARCHITECTURE │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────┐│
│ │ CLIENT LAYER ││
│ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ││
│ │ │ Desktop │ │ Mobile │ │ Web │ ││
│ │ │ (Tauri) │ │ (Tauri v2) │ │ (Future) │ ││
│ │ │ macOS/Win/Lin │ │ iOS/Android │ │ │ ││
│ │ └───────────────┘ └───────────────┘ └───────────────┘ ││
│ └─────────────────────────────────────────────────────────────────────────┘│
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────┐│
│ │ INFRASTRUCTURE LAYER ││
│ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ││
│ │ │ Traefik │ │ PostgreSQL │ │ Better Auth │ ││
│ │ │ (Reverse Proxy│ │ (+ pgvector) │ │ (Session Auth)│ ││
│ │ │ + Auto SSL) │ │ │ │ │ ││
│ │ └───────────────┘ └───────────────┘ └───────────────┘ ││
│ │ │ │ │ ││
│ │ └───────────────┴───────────────────┘ ││
│ │ │ ││
│ │ ┌──────────┴──────────┐ ││
│ │ │ Management API │ ││
│ │ │ (Bun + Hono) │ ││
│ │ │ Direct Docker API │ ││
│ │ └─────────────────────┘ ││
│ └─────────────────────────────────────────────────────────────────────────┘│
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────┐│
│ │ SANDBOX LAYER ││
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││
│ │ │ Sandbox A │ │ Sandbox B │ │ Sandbox C │ ││
│ │ │ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ │ ││
│ │ │ │OpenCode │ │ │ │OpenCode │ │ │ │OpenCode │ │ ││
│ │ │ │ Server │ │ │ │ Server │ │ │ │ Server │ │ ││
│ │ │ └─────────┘ │ │ └─────────┘ │ │ └─────────┘ │ ││
│ │ │ + Workspace │ │ + Workspace │ │ + Workspace │ ││
│ │ │ + Terminal │ │ + Terminal │ │ + Terminal │ ││
│ │ └─────────────┘ └─────────────┘ └─────────────┘ ││
│ │ │ │ │ ││
│ │ ┌──────────┴───────────────┴───────────────┴──────────┐ ││
│ │ │ Docker Network (agentpod-net) │ ││
│ │ └──────────────────────────────────────────────────────┘ ││
│ └─────────────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────────────┘
Features
Core
- Project Management: Create sandboxes from scratch, clone from GitHub, or import existing repos
- AI Chat Interface: Real-time streaming chat with OpenCode via SSE
- File Browser: Navigate project files with syntax highlighting (Shiki)
- Interactive Terminal: Full terminal access to sandbox containers (xterm.js)
- Session Management: Multiple chat sessions per sandbox with history
Configuration
- LLM Providers: Configure API keys or OAuth (GitHub Copilot, Claude, OpenAI, Anthropic, etc.)
- Theme System: 20+ built-in themes with modular color schemes and font pairings
- Keyboard Shortcuts: Agent cycling (Cmd+,/.), model cycling (Alt+,/.)
- Human-in-the-Loop: Permission system for AI actions requiring approval
Container Flavors
| Flavor | Languages | Size |
|--------|-----------|------|
| agentpod-js | JavaScript, TypeScript, Deno | ~800MB |
| agentpod-python | Python 3.12, Jupyter, ML tools | ~1.2GB |
| agentpod-go | Go 1.22 | ~900MB |
| agentpod-rust | Rust stable | ~1.1GB |
| agentpod-fullstack | JavaScript + Python (default) | ~1.8GB |
| agentpod-polyglot | All languages | ~3GB |
Production Ready
- Observability: Loki + Fluent Bit + Grafana for logging and monitoring
- CI/CD: GitHub Actions + Forgejo Actions pipelines
- HTTPS: Automatic SSL via Let's Encrypt + Traefik
- Backup: Automated PostgreSQL backups with retention policies
Technology Stack
| Layer | Technology | Purpose | |-------|------------|---------| | Desktop/Mobile | Tauri v2 + SvelteKit | Cross-platform native app | | UI Components | shadcn-svelte + Tailwind | Design system | | Chat UI | assistant-ui (React) | AI conversation interface | | API | Bun + Hono | Fast, lightweight backend | | Database | PostgreSQL + pgvector | Data persistence + embeddings | | Auth | Better Auth | Session-based authentication | | Containers | Docker + Traefik | Sandbox orchestration | | AI Agent | OpenCode | 75+ LLM provider support | | Build | Turborepo + pnpm | Monorepo management |
Project Structure
agentpod/
├── apps/
│ ├── frontend/ # Tauri desktop app (@agentpod/frontend)
│ │ ├── src/ # SvelteKit frontend
│ │ │ ├── lib/
│ │ │ │ ├── chat/ # React chat components (assistant-ui)
│ │ │ │ ├── components/ # Svelte components
│ │ │ │ ├── stores/ # Svelte 5 rune-based state
│ │ │ │ └── themes/ # Theme system
│ │ │ └── routes/ # SvelteKit pages
│ │ └── src-tauri/ # Rust backend
│ │ └── src/
│ │ ├── commands/ # Tauri IPC commands
│ │ └── services/ # Business logic
│ │
│ └── api/ # Management API (@agentpod/api)
│ ├── src/
│ │ ├── auth/ # Better Auth configuration
│ │ ├── db/ # Drizzle ORM + PostgreSQL
│ │ ├── routes/ # Hono API routes
│ │ └── services/ # Business logic
│ │ ├── orchestrator/ # Docker management
│ │ ├── git/ # Git operations
│ │ └── config/ # agentpod.toml parsing
│ └── tests/ # 411 tests (unit + integration + e2e)
│
├── packages/
│ ├── types/ # Shared TypeScript types (@agentpod/types)
│ ├── ui/ # Shared UI components (@agentpod/ui)
│ ├── tsconfig/ # Shared TypeScript configs
│ └── eslint-config/ # Shared ESLint configs
│
├── docker/
│ ├── base/ # Base container image
│ │ ├── Dockerfile
│ │ ├── entrypoint.sh
│ │ ├── acp-gateway/ # Agent Communication Protocol
│ │ └── homepage/ # Container dashboard
│ ├── flavors/ # Language-specific images
│ │ ├── js/
│ │ ├── python/
│ │ ├── go/
│ │ ├── rust/
│ │ ├── fullstack/
│ │ └── polyglot/
│ └── scripts/ # Build scripts
│
├── config/ # Infrastructure configs
│ ├── grafana/ # Dashboards and provisioning
│ ├── loki/ # Log aggregation
│ └── fluent-bit/ # Log collection
│
├── docs/ # Documentation
│ ├── architecture/ # System design
│ ├── implementation/ # Phase guides
│ ├── ui-ux/ # Design system
│ ├── onboarding-system/ # Knowledge base
│ └── production-readiness/ # Deployment guides
│
├── docker-compose.yml # Local development
├── docker-compose.prod.yml # Production overrides
├── turbo.json # Turborepo config
└── pnpm-workspace.yaml # Workspace definition
Quick Start
Prerequisites
- Docker (for sandboxes)
- Node.js 22+ or Bun
- pnpm (
npm install -g pnpm) - Rust (for Tauri)
- Tauri prerequisites
Development
# Clone the repository
git clone https://github.com/rakeshgangwar/agentpod.git
cd agentpod
# Install dependencies
pnpm install
# Copy environment files
cp .env.example .env
cp apps/api/.env.example apps/api/.env
# Start infrastructure (PostgreSQL, Traefik)
docker
