| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A local, interactive AI coding CLI. Chat with a free LLM (via OpenRouter) that can read/write/edit files, run shell commands (with your approval), search your codebase, and work with git.
GCode is community-built, and contributions of every kind are welcome — bug reports, docs, tests, and features.
pip install -e .On Windows? See the Windows setup and troubleshooting guide for native, WSL2, and Git Bash instructions and known limitations.
GCode reads your API key from ~/.gcode/.env (not a project-root .env). Create it from the template and add your OpenRouter API key:
mkdir -p ~/.gcode
cp .env.example ~/.gcode/.envThen edit ~/.gcode/.env:
OPENROUTER_API_KEY=sk-or-...
Get one at https://openrouter.ai/keys. (OPENAI_API_KEY is also accepted as a fallback.)
GCode reads optional settings from a .gcoderc file (in the project root, or ~/.gcode/.gcoderc for user-wide defaults). The format is simple key = value lines with # comments. Command-line flags and environment variables still take precedence over the file.
# .gcoderc model = nvidia/nemotron-3-super-120b-a12b:free auto_approve = false bash_timeout = 300 system_prompt = You are GCode, a coding agent.
Supported keys:
| Key | Type | Default | Description |
|---|---|---|---|
| model | string | first free model | Default model id (overridden by --model / GCODE_MODEL) |
| auto_approve | bool | false | Skip bash confirmation (overridden by --yes) |
| bash_timeout | int | 300 | Seconds before a bash command is killed |
| system_prompt | string | built-in | Custom system prompt for new sessions |
A skill is a Markdown file with extra instructions for GCode to follow — a house style, a domain checklist, project-specific conventions. Drop one into .gcode/skills/<name>.md (project-local) or ~/.gcode/skills/<name>.md (user-wide, available in every project); a project skill overrides a user skill of the same name.
GCode also reads Claude Code skills natively: ~/.claude/skills/ is scanned as an additional (lowest-precedence) source, accepting both its <name>/SKILL.md folder layout — with the YAML frontmatter description: used for /skills listings — and plain .md files. Precedence: project > user > claude, so a same-named local skill always wins.
# .gcode/skills/commit-style.md # Commit style Write commit messages as a single imperative sentence, no period, under 72 chars.
gcode # start a session in the current directory
gcode --session work # named, resumable session
gcode --model nvidia/nemotron-3-super-120b-a12b:free
gcode --yes # auto-approve bash (unsafe — know what you run)Commands (start a line with /):
Chat history persists across runs in ~/.gcode/.
docs/demo.gif is recorded from a real session with vhs:
brew install vhs # or: go install github.com/charmbracelet/vhs@latest
vhs demo/demo.tape # writes docs/demo.gifNotes for editing demo/demo.tape:
GCode streams the assistant's replies token-by-token, renders Markdown, and shows each tool call as ⏺ Tool(args) with a y/n gate before bash runs (skip the gate with --yes).
The default nvidia/nemotron-3-super-120b-a12b:free supports tool use. Not every free model does — some (e.g. meta-llama/llama-3.2-3b-instruct:free) return a 404 "No endpoints found that support tool use". Stick to tool-capable models, or any model you pass via /model / --model / GCODE_MODEL. Free models are also heavily rate-limited on OpenRouter's shared tier; if you get a 429, wait a moment and retry, or use your own OpenRouter key for higher limits.
Bash commands require a y/n confirmation by default. Only use --yes if you trust the agent and your prompts — it will run whatever the model requests. /skill import <package> runs an arbitrary npm package via npx and carries the same confirmation (and is skipped by the same --yes) — only import skills from packages you trust.
Thanks to everyone who has contributed to GCode, whether through code, documentation, bug reports, testing, or other contributions. ❤️
Your contributions help make GCode better for everyone.
Contributions are always welcome! See CONTRIBUTING.md to get started.
| Back | FazBrowse Home | New Git URL |