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.

  1. 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 doctor says 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 run g6 setup once yourself, not your agent: where your computer has no boundary, it asks whether G6 may run such code without one.

  2. Connect Claude Code or Codex

    Run this yourself, in a terminal, with --client codex for Codex, or give --client twice for both:

    g6 setup --client claude --allow patch_review.review

    It registers this installation with the client, with this installation's Python, started with -P so that the packages in the project's folder never replace G6's own, installs the using-g6 skill 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 with claude mcp get g6 (or codex mcp get g6). To replace it, remove it with claude mcp remove --scope user g6 (or codex mcp remove g6), then run g6 setup again.

  3. 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:

    1. It turns the task into numbered requirements, each with the pytest tests that check it where such a test exists.
    2. It calls g6_review_patch with the repository's folder, the task and the requirements, and polls metaharness_job until the review ends.
    3. 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.
    4. 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 .venv or venv; without one, with the Python running G6, which then needs pytest and the project's dependencies. For Poetry, conda or another environment, see G6_REPO_PYTHON in 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.

  4. Another agent or client

    Run:

    claude mcp add --transport stdio --scope user g6 -- g6-mcp

    Or add this to .mcp.json in a project (or let the command write ~/.claude.json):

    { "mcpServers": { "g6": { "type": "stdio", "command": "g6-mcp", "args": [] } } }

    Claude Code's documentation

    Run:

    codex mcp add g6 -- g6-mcp

    Or add this to ~/.codex/config.toml:

    [mcp_servers.g6] command = "g6-mcp"

    Codex's documentation

    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.

    OpenCode's documentation

    Run:

    hermes mcp add g6 --command g6-mcp

    Or add this to ~/.hermes/config.yaml:

    mcp_servers: g6: command: g6-mcp args: [] enabled: true

    Reload with /reload-mcp, or restart Hermes.

    Hermes's documentation

    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.

    Muse Code's documentation

    Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

    { "mcpServers": { "g6": { "type": "stdio", "command": "g6-mcp", "args": [] } } }

    Cursor's documentation

    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.

    VS Code's documentation

    Run:

    gemini mcp add -s user g6 g6-mcp

    Or add this to ~/.gemini/settings.json:

    { "mcpServers": { "g6": { "command": "g6-mcp", "args": [] } } }

    Gemini CLI's documentation

    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.

    Windsurf's documentation

    Add this to Zed's settings.json (Settings, then AI, then MCP Servers):

    { "context_servers": { "g6": { "command": "g6-mcp", "args": [], "env": {} } } }

    Zed's documentation

    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.

    Claude Desktop's documentation

    These register G6 without patch review. To allow it, give the server the environment setting G6_MCP_SENSITIVE=patch_review.review, as g6 setup does for Claude Code and Codex.

    On Windows, if your agent cannot find g6-mcp, give its full path instead, for example C:\path\to\g6\.venv\Scripts\g6-mcp.exe; in JSON, write each \ as \\.

  5. Teach your agent to use G6

    The using-g6 skill tells your agent which G6 step to take at each point of its work; g6 setup installs 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 --user to have it in every project. For another agent, copy that folder to wherever it reads skills.

    g6 skills install

    For 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-superpowers

    g6 skills list shows every skill, including each component's own.

  6. Check it works

    Ask your agent which G6 tools it can see. It should list g6_review_patch, g6_find, g6_describe and g6_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:20b

Pull it first: ollama pull gpt-oss:20b.

About this model

G6_LLM_PROVIDER=openrouter G6_LLM_MODEL=typesafe/jev-router OPENROUTER_API_KEY=your-openrouter-key

Jev 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.

About this model

G6_LLM_PROVIDER=anthropic G6_LLM_MODEL=claude-opus-5-5 ANTHROPIC_API_KEY=your-anthropic-key

Install the extra first: pip install ".[anthropic]".

G6_LLM_PROVIDER=openai G6_LLM_MODEL=your-model OPENAI_API_KEY=your-openai-key

Then 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 as OPENROUTER_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.

Contact

Write to .

Every email is reviewed by the founder, and we endeavour to respond within 48 hours. Thank you for your correspondence.