Get started
G6 works with the AI you already run, so there is nothing to replace. Add it, and your agent can check its own work, gate its actions and engineer itself to your task.
For a coding agent, start here: before your agent says a Python change is done, it asks G6 to review the patch, shows you G6's report, and fixes what G6 reproduces. Merging stays your decision.
Early alpha. Individual capabilities have been tested; general application-level improvements have not yet been established.
Three ways to use G6, all on your own computer: from your agent, in your code, or as an app.
From your agent
Your agent calls G6's tools through its MCP server.
-
Install
G6 installs from a copy of its code; it is not on PyPI.
git clone https://github.com/basicisabc1994/g6solver && cd g6solver python -m venv --copies .venv source .venv/bin/activate # PowerShell: .venv\Scripts\Activate.ps1 pip install ".[all]"G6 gets an environment of its own, made with
--copies: on Linux, G6 cannot yet tell its own Python from a project environment linked to the same one, and refuses to review then.Where no operating-system boundary can confine it (macOS, Linux without bubblewrap, and Windows before the one-time access grant), G6 refuses to run untrusted code for you (a patch, a generated script, a repository's tests) unless you allow it once with g6 setup. Code you allow then has your own rights: it can read your key file ~/.g6/.env and your other files, and its network guard works inside Python only. You are responsible for what you run. Patch review needs an operating-system boundary (Linux with bubblewrap, Windows after the one-time access grant): allowing unconfined runs does not make it run, and on macOS it refuses.
g6 doctorsays whether that code runs confined on your computer: on Linux, install the bubblewrap package for the boundary; on Windows, it prints the one-time commands that grant the access. Then rung6 setuponce yourself, not your agent: where your computer has no boundary, it asks whether G6 may run such code without one. -
Connect Claude Code or Codex
Run this yourself, in a terminal, with
--client codexfor Codex, or give--clienttwice for both:g6 setup --client claude --allow patch_review.reviewIt registers this installation with the client, with this installation's Python, started with
-Pso that the packages in the project's folder never replace G6's own, installs theusing-g6skill for it, and allows patch review, the one sensitive operation the first review needs. Restart the client afterwards. Setup's last lines show the first review call.If the client already has an entry called
g6, setup leaves it as it is and stops. See it withclaude mcp get g6(orcodex mcp get g6). To replace it, remove it withclaude mcp remove --scope user g6(orcodex mcp remove g6), then rung6 setupagain. -
The first review
In a Python repository, ask your agent for a change, then ask it to review the change with G6 before it says the task is done. The skill tells it how:
- It turns the task into numbered requirements, each with the pytest tests that check it where such a test exists.
- It calls
g6_review_patchwith the repository's folder, the task and the requirements, and pollsmetaharness_jobuntil the review ends. - It shows you the reply's readable report (
assessment.report) as it is: what G6 reproduced first, then what is not established, then what you decide. - When G6 reproduces a defect, it fixes it and reviews again, with each earlier reproduction added as a stated check, so you can see the fix pass the original counterexample. It stops after three rounds, when a round changes nothing, or when the report says only you can decide.
G6 runs the tests with the repository's own
.venvorvenv; without one, with the Python running G6, which then needs pytest and the project's dependencies. For Poetry, conda or another environment, seeG6_REPO_PYTHONin the workflow guide in the repository,docs/AI_FOR_AI_WORKFLOW.md.The outcome is one of: test integrity compromised, defect detected, insufficient evidence, or supported within scope. Supported within scope means every stated requirement passed its stated checks; it is not proof that the patch does everything the task needs. Merging stays your decision.
-
Another agent or client
Run:
claude mcp add --transport stdio --scope user g6 -- g6-mcpOr add this to .mcp.json in a project (or let the command write ~/.claude.json):
{ "mcpServers": { "g6": { "type": "stdio", "command": "g6-mcp", "args": [] } } }Run:
codex mcp add g6 -- g6-mcpOr add this to ~/.codex/config.toml:
[mcp_servers.g6] command = "g6-mcp"Add this to opencode.json in a project, or ~/.config/opencode/opencode.json:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "g6": { "type": "local", "command": ["g6-mcp"], "enabled": true } } }OpenCode's own `opencode mcp add` asks its questions one by one.
Run:
hermes mcp add g6 --command g6-mcpOr add this to ~/.hermes/config.yaml:
mcp_servers: g6: command: g6-mcp args: [] enabled: trueReload with /reload-mcp, or restart Hermes.
Add this to ~/.config/muse/settings.json:
{ "schema_version": 1, "mcp_servers": { "g6": { "transport": "stdio", "command": "g6-mcp", "args": [] } } }Keep "schema_version": 1 in the file.
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{ "mcpServers": { "g6": { "type": "stdio", "command": "g6-mcp", "args": [] } } }Run:
code --add-mcp "{\"name\":\"g6\",\"command\":\"g6-mcp\"}"Or add this to .vscode/mcp.json in a project:
{ "servers": { "g6": { "type": "stdio", "command": "g6-mcp", "args": [] } } }For Copilot's agent mode.
Run:
gemini mcp add -s user g6 g6-mcpOr add this to ~/.gemini/settings.json:
{ "mcpServers": { "g6": { "command": "g6-mcp", "args": [] } } }Add this to mcp_config.json: open it from Cascade's menu, “Open MCP config file”:
{ "mcpServers": { "g6": { "command": "g6-mcp", "args": [] } } }Windsurf is now called Devin Desktop.
Add this to Zed's settings.json (Settings, then AI, then MCP Servers):
{ "context_servers": { "g6": { "command": "g6-mcp", "args": [], "env": {} } } }Add this to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{ "mcpServers": { "g6": { "command": "g6-mcp", "args": [] } } }Quit it fully and open it again.
These register G6 without patch review. To allow it, give the server the environment setting
G6_MCP_SENSITIVE=patch_review.review, asg6 setupdoes for Claude Code and Codex.On Windows, if your agent cannot find
g6-mcp, give its full path instead, for exampleC:\path\to\g6\.venv\Scripts\g6-mcp.exe; in JSON, write each\as\\. -
Teach your agent to use G6
The
using-g6skill tells your agent which G6 step to take at each point of its work;g6 setupinstalls it for Claude Code and Codex. To install it yourself, run this in your project to copy it into.claude/skills, where Claude Code finds it; add--userto have it in every project. For another agent, copy that folder to wherever it reads skills.g6 skills installFor a coding agent, add the superpowers skills for the whole software lifecycle, which G6 ships with credit to their author (unless you already use the superpowers plugin):
g6 skills install --with-superpowersg6 skills listshows every skill, including each component's own. -
Check it works
Ask your agent which G6 tools it can see. It should list
g6_review_patch,g6_find,g6_describeandg6_invoke, and the meta-harness tools.
In your code
Import one component into your own app, or tune a whole task with the meta-harness.
pip install .
python -c "from g6.metaharness import adapt"Where G6 itself calls a model, it uses the one you choose. Put these lines in your key file,
.env in G6's folder (~/.g6/.env, or %USERPROFILE%\.g6\.env on
Windows): a plain text file you create and only you edit. G6 reads keys only from that file, never from your
shell or your agent's settings, so a key there is your go-ahead for G6 to use it. A paid provider uses your
own account; G6 never picks one for you.
G6_LLM_PROVIDER=ollama
G6_LLM_MODEL=gpt-oss:20bPull it first: ollama pull gpt-oss:20b.
G6_LLM_PROVIDER=openrouter
G6_LLM_MODEL=typesafe/jev-router
OPENROUTER_API_KEY=your-openrouter-keyJev Router picks a model and reasoning effort for each request, so its price follows the model it picks. Tuning compares runs, so a fixed model gives steadier numbers there; any OpenRouter model id works the same way.
G6_LLM_PROVIDER=anthropic
G6_LLM_MODEL=claude-opus-5-5
ANTHROPIC_API_KEY=your-anthropic-keyInstall the extra first: pip install ".[anthropic]".
G6_LLM_PROVIDER=openai
G6_LLM_MODEL=your-model
OPENAI_API_KEY=your-openai-keyThen run g6 doctor: it names the keys it finds in that file and never
shows a value.
As an app, no programming needed
A worked example is a restricted subset of G6's components, set up as a desktop app for one problem.
Where the downloads are
Each worked example's downloads are on Worked examples and on the
releases page, where they are called bundles. A developer
can also run one from a copy of the code: pip install ., then for example g6 bundle check-claims.
1. Choose a worked example
Go to Worked examples and download the one for your problem. Pick the file for your computer:
Windows (…-windows-….exe), macOS (…-macos-arm64.zip, for Apple-silicon Macs; there is no Intel Mac build yet)
or Linux (…-linux-x86_64.zip). On macOS and Linux, double-click the .zip to unpack it.
2. Open it
Double-click the file. A small window opens (keep it open while you work) and your web browser opens a private G6 page. It runs only on your computer. Close the small window to stop it.
The browser did not open
The small window shows an address like http://127.0.0.1:52817/. Copy it into your browser.
Windows says “Windows protected your PC”
G6's worked examples are not code-signed (signing costs money every year, and G6 is free). Click More info,
then Run anyway. You can check the download first: each release includes SHA256SUMS.txt.
macOS says the app “cannot be opened”
Right-click (or Control-click) the app, choose Open, then Open again. You only need to do this the first time.
3. Choose your AI model (only if the worked example needs one)
Of the 10 worked examples that work today, 6 need no AI model at all, such as Safe agent actions and Check claims against your sources. The others show an AI model panel at the top of the page:
- Free and private: install Ollama, then choose ollama as the provider. Nothing leaves your computer. A recent laptop with 16 GB of memory is enough for the default model.
- Your own key: choose anthropic, openai or openrouter, then add its key to your key file,
~/.g6/.env, as one line such asOPENROUTER_API_KEY=your-key. The page never takes a key. You pay the provider directly.
4. Use it
Follow the steps on the page. Every result is labelled:
| Label | Meaning |
|---|---|
verified |
Every required check passed on independent evidence. |
qualified-draft |
Useful, but something is unproven — the page says exactly what. |
blocked-escalated |
G6 stopped and tells you what it needs from you. |
Your data
Everything G6 stores lives in a folder called .g6 in your home folder. Delete it to remove everything.