Local-first coding agent on Google Gemini + ADK
Project description
GemCode User Manual
This document is the primary user-facing manual for GemCode. It explains the product at a high level and points to the subsystem-specific documentation pages that provide production-grade depth.
What GemCode is
GemCode is a local-first coding agent built around Google Gemini and the Google Agent Development Kit (ADK). It operates against a chosen project root and combines:
- a configuration model
- a runtime runner
- a root language-model agent
- a configurable tool inventory
- project-local state under
.gemcode/
GemCode is designed for repository-native work rather than copy-paste chat workflows.
Runtime modes
| Mode | Purpose |
|---|---|
| One-shot CLI | Single prompt/response runs |
| REPL | Stateful terminal interaction |
| TUI | Scrollback terminal UI over the REPL runtime |
| IDE stdio | Editor integration over JSONL stdin/stdout |
| Kaira | Priority-queue scheduler for background jobs |
| Live audio | Microphone-driven Gemini Live sessions |
Recommended reading order
1. Setup and first use
2. Interactive use
3. Configuration and local assets
4. Tooling and safety model
5. Optional capability bundles
6. Integrations
7. Operations and release
8. .gemcode/ state reference
9. Architecture deep dive
Quickstart
Install
cd gemcode
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e ".[dev]"
Set your API key
export GOOGLE_API_KEY="your-key"
Start GemCode against a project
gemcode -C /path/to/project
One-shot run
gemcode -C /path/to/project "Explain this repository"
Mutating run
gemcode -C /path/to/project --yes "Fix the failing tests"
Essential concepts
Project root
Every GemCode run is anchored to a project root. This determines:
- what files are visible
- where
.gemcode/state is stored - what instruction files are loaded
- which repo-local assets are active
.gemcode/
GemCode stores project-local state under .gemcode/, including:
- sessions
- logs
- artifacts
- memory
- skills
- rules
- output styles
- hooks
- integration config
Reference:
Project instruction files
GemCode supports project instruction files loaded by the agent layer. The live code treats gemcode.md as the primary project instruction file and supports GEMINI.md as a compatibility path.
Reference:
GemSkills
GemSkills are reusable prompt playbooks stored under:
.gemcode/skills/<name>/SKILL.md~/.gemcode/skills/<name>/SKILL.md
They support:
- creation
- session loading
- one-shot invocation
- iterative editing
Permissions
GemCode combines:
- workspace trust
- permission mode
- allow/deny settings
- blanket approval flags
- interactive approval prompts
Reference:
Common commands
Inspect models
gemcode models
Start the REPL
gemcode -C .
Attach a file to a one-shot turn
gemcode -C . --attach ./report.pdf "Summarize this"
Run the scheduler
gemcode kaira -C .
Start the IDE bridge
gemcode ide --stdio
Run live audio
gemcode live-audio -C .
REPL command highlights
| Command | Purpose |
|---|---|
/help |
Command summary |
/status |
Model, capabilities, context, and runtime telemetry |
/context |
Context pressure and prompt budget telemetry |
/cost |
Token and cost estimate summary |
/attach |
Queue file attachments for the next turn |
/trust |
Manage workspace trust |
/init |
Generate project instructions |
/skills |
List skills |
/gemskill |
Load a skill into the session prompt |
/style |
Set session output style |
/rules |
Inspect active rules |
/diff |
Show current diff/checkpoint diff |
/rewind |
Restore checkpoints |
/review |
Run a review workflow |
/eval |
Run evaluation gates |
/kaira |
Show scheduler usage help |
Detailed behavior:
Capability overview
| Capability | What it adds |
|---|---|
| Deep research | research-focused tool routing and optional dedicated model path |
| Embeddings | semantic search and optional embedding-backed memory |
| Memory | retrieval-oriented persistent memory |
| Browser/computer use | Playwright-backed browser automation and inspection |
| Live audio | Gemini Live microphone sessions |
Detailed behavior:
Integrations overview
| Integration | Entry point |
|---|---|
| IDE bridge | gemcode ide --stdio |
| Web/SSE | documented in docs/web-ui-contract.md |
| MCP | .gemcode/mcp.json |
| OpenAPI | .gemcode/openapi/ |
Detailed behavior:
Release and maintenance
Package version lives in:
gemcode/pyproject.toml
Release operations, troubleshooting, and PyPI workflow are documented in:
Documentation policy
This manual is intentionally concise. The detailed production documentation lives under docs/ and is organized by subsystem and operator concern so it can stay accurate as GemCode evolves.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gemcode-0.3.90.tar.gz.
File metadata
- Download URL: gemcode-0.3.90.tar.gz
- Upload date:
- Size: 253.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f9a8f67ff0eb5f3e9c3dc2ba42f250c4e2323c97ad3d14d4385865bf68a3074
|
|
| MD5 |
abbfeee8acdefce74c7a03be7f5529d7
|
|
| BLAKE2b-256 |
1ad3a78cf2b4900b912b95216fccb88cd628b2625f7eb20d3974ea865991d246
|
Provenance
The following attestation bundles were made for gemcode-0.3.90.tar.gz:
Publisher:
publish-pypi.yml on spiderdev27/GemCode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gemcode-0.3.90.tar.gz -
Subject digest:
8f9a8f67ff0eb5f3e9c3dc2ba42f250c4e2323c97ad3d14d4385865bf68a3074 - Sigstore transparency entry: 1317345667
- Sigstore integration time:
-
Permalink:
spiderdev27/GemCode@d1e5c441a39ba88db848bee3f92b7dce5e3f6535 -
Branch / Tag:
refs/tags/v0.3.90 - Owner: https://github.com/spiderdev27
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@d1e5c441a39ba88db848bee3f92b7dce5e3f6535 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gemcode-0.3.90-py3-none-any.whl.
File metadata
- Download URL: gemcode-0.3.90-py3-none-any.whl
- Upload date:
- Size: 279.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b47358d06485579c43fcca09578b192b60439387262e301ebaf8ab9909f87b9
|
|
| MD5 |
1928824de571a8dd8e16d59dfca05db0
|
|
| BLAKE2b-256 |
114295838d2393c1b095f47820b9349d1b98b7258cb597f7316c8db7cdfa30f0
|
Provenance
The following attestation bundles were made for gemcode-0.3.90-py3-none-any.whl:
Publisher:
publish-pypi.yml on spiderdev27/GemCode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gemcode-0.3.90-py3-none-any.whl -
Subject digest:
5b47358d06485579c43fcca09578b192b60439387262e301ebaf8ab9909f87b9 - Sigstore transparency entry: 1317345685
- Sigstore integration time:
-
Permalink:
spiderdev27/GemCode@d1e5c441a39ba88db848bee3f92b7dce5e3f6535 -
Branch / Tag:
refs/tags/v0.3.90 - Owner: https://github.com/spiderdev27
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@d1e5c441a39ba88db848bee3f92b7dce5e3f6535 -
Trigger Event:
push
-
Statement type: