Code that
Writes
Itself.
An open-source, local-first alternative to Claude Code built by Veoksha. It combines Google Gemini with the Agent Development Kit (ADK) to work inside your repositories, read files, run allowlisted commands, and edit safely under explicit permissions.
The Cognitive Loop.
GemCode utilizes a continuous reasoning loop to navigate files, test hypotheses, and verify its own work before presenting a solution.
The objective is to replace the legacy JWT implementation with secure session cookies.
1. I will write tasks via \`todo_write\` to structure the multi-step work.
2. I need to completely rewrite \`src/middleware/auth.ts\` using \`search_replace\`.
3. I will spawn a sub-agent via \`run_subtask\` to rewrite the mocked JWT tests in parallel.
Plan formulated. Continuing ADK loop.
GemCode Architecture.
Outer Loop (CLI)
Builds an ADK Runner with an LlmAgent, configuring models, capabilities, and tool inventory based on permissions.
Inner Loop (ADK)
The model is called repeatedly. Each turn it may emit function calls; ADK executes them and feeds results back.
Multi-Agent System
ADK agent transfer delegates to sub-agents (e.g. explorer/verifier patterns) for specialized, complex tasks.
Subtask Spawning
Spawns focused child runs for parallelized work (used heavily by the built-in /batch orchestration pattern).
Memory Architecture
Three distinct layers: SQLite session history, human-approved curated memory, and embedding-backed retrieval.
GemSkills & Batch
Reusable markdown playbooks pinned to the session. The built-in /batch skill orchestrates large parallel changes.
Checkpoints
Mutating tools create automatic checkpoints, allowing you to compare checkpoint vs workspace and roll back changes.
Kaira Scheduler
A background queue daemon of independent agent jobs. Each stdin line becomes a job; enqueue prompts via tools.
IDE Bridge & MCP
JSONL protocol on stdin/stdout for editor extensions, plus support for loading external toolsets via MCP servers.
Absolute Control.
GemCode is designed to fail-closed: reads are safe by default, and mutations are rigidly gated. Shell execution is allowlisted, and file writes require explicit approval via --yes or terminal HITL (Human-in-the-Loop) prompts.