Help us shape the future of Go! Take the 2026 Go Developer Survey

agx

module
v0.0.0-...-8ff7086 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2026 License: MIT

README

agx

One config for every coding agent.
Skills, MCP servers, and instructions — scoped to the directory you're in.

Codex · Claude Code · Pi

CI Release

What it looks like

# ~/.config/agx/agx.d/main.yaml, listed in agx.yaml
packages:
  mattpocock:
    git: https://github.com/mattpocock/skills.git

mcp:
  context7:   { url: https://mcp.context7.com/mcp, auth: none }
  github:     { url: https://api.githubcopilot.com/mcp/, auth: keychain }
  playwright: { command: [npx, -y, '@playwright/mcp@latest'] }

instructions:
  house-rules:
    text: Use pnpm, not npm. Write conventional commits.

scopes:
  - add:                                  # everywhere
      skills: [mattpocock/tdd, mattpocock/grill-me, mattpocock/diagnosing-bugs]
      instructions: [house-rules]
      mcp: [context7, github]
  - directory: ~/work                     # work projects only
    add:
      skills: [mattpocock/pr]
  - directory: ~/work/acme-web            # just this repo
    add:
      mcp: [playwright]
$ cd ~/work/acme-web
$ agx claude   # 4 skills, house rules, context7 + github + playwright
$ agx codex    # same
$ agx pi       # same

$ cd ~/oss/blog
$ agx claude   # no pr skill, no playwright

Features

📁 Directory scopes
Add or remove anything for a folder and everything below it. Work repos get work tools; personal ones stay clean.

📦 Skills from Git
agx skill add mattpocock/skills — pick skills, lock the commit, agx update later.

🔌 MCP for every harness
HTTP and stdio servers, defined once and served to Codex, Claude Code, and Pi.

🔐 No tokens in files
Keychain secrets and OAuth logins, held by a local daemon. Agents never see them.

🔍 Explainable
agx explain shows every resource a directory gets and the line that decided it.

⏯ Launcher
Run agx to start an agent or resume any past session, from any harness.

Install

Download agx from the releases page and put it on your PATH.

macOS: first run

Clear the quarantine flag once:

xattr -d com.apple.quarantine ./agx
mise
mise use -g github:tarik02-org/agx
Nix
nix profile install github:tarik02-org/agx
Home Manager

The flake's homeManagerModules.default installs agx and writes programs.agx.settings to the drop-in agx.d/10-home-manager.yaml, validated at build time; settings.daemon goes to the root agx.yaml instead:

{ config, pkgs, ... }: {
  imports = [ inputs.agx.homeManagerModules.default ];
  programs.agx = {
    enable = true;
    settings.mcp.docs = {
      url = "https://docs.example.com/mcp";
      headers.X-Api-Key = config.lib.agx.secret "docs-key"; # !secret docs-key
    };
    harnesses.codex.package = pkgs.codex; # `codex` runs through agx
  };
}

config.lib.agx also has env, file, and tag. Activation runs agx shims install and the shims directory goes on PATH (shims.enable). Each harnesses.<name> entry installs a <name> link to agx (link) and pins its executable to the package.

Go 1.26+
go install github.com/tarik02-org/agx/cmd/agx@latest

Get started

agx skill add mattpocock/skills --skill tdd --skill grill-me
agx mcp add context7 https://mcp.context7.com/mcp --auth none
agx mcp add playwright --scope here -- npx -y @playwright/mcp@latest
agx explain
agx claude

Every command shows a diff before it writes. Continue with the getting started guide.

Integrations

Any tool that starts Codex, Claude Code, or Pi can run them through agx: point it at a shim instead of the agent's own binary. See Integrations for T3 Code.

Docs

Getting started · Configuration · Harnesses · MCP servers · Skills & packages · Secrets · Sessions · Integrations · Daemon · Troubleshooting · Security · CLI reference

Working on agx itself? See the development notes and the changelog.

MIT licensed

Directories

Path Synopsis
cmd
agx command
gen
internal
adapters
Package adapters holds the contract between agx and the built-in harnesses, and the helpers their adapters share.
Package adapters holds the contract between agx and the built-in harnesses, and the helpers their adapters share.
adapters/builtin
Package builtin lists the built-in harnesses; supporting another one means adding its adapter here.
Package builtin lists the built-in harnesses; supporting another one means adding its adapter here.
adapters/claude
Package claude adapts Claude Code: skills load from a session plugin directory, instructions from an appended system prompt file, and MCP servers from inline --mcp-config.
Package claude adapts Claude Code: skills load from a session plugin directory, instructions from an appended system prompt file, and MCP servers from inline --mcp-config.
adapters/codex
Package codex adapts Codex: instructions and MCP servers travel as -c overrides, and skills are plugins of a local marketplace that installation registers and each launch toggles.
Package codex adapts Codex: instructions and MCP servers travel as -c overrides, and skills are plugins of a local marketplace that installation registers and each launch toggles.
adapters/codex/appserver
Package appserver relays the Codex app-server protocol between a host such as T3 Code and one app-server process, giving every thread the resources of its own directory: each thread/start, thread/fork, and thread/resume gets a thread launch whose MCP servers, skill plugins, and instructions it adds to the request, and turn/start keeps unselected skill plugins disabled.
Package appserver relays the Codex app-server protocol between a host such as T3 Code and one app-server process, giving every thread the resources of its own directory: each thread/start, thread/fork, and thread/resume gets a thread launch whose MCP servers, skill plugins, and instructions it adds to the request, and turn/start keeps unselected skill plugins disabled.
adapters/pi
Package pi adapts Pi: skills and the appended system prompt are explicit paths, and MCP servers register through a generated per-launch extension.
Package pi adapts Pi: skills and the appended system prompt are explicit paths, and MCP servers register through a generated per-launch extension.
cli
cli/launcher
Package launcher is the full-screen picker bare agx opens on a terminal: one search field over harnesses to start and sessions to resume.
Package launcher is the full-screen picker bare agx opens on a terminal: one search field over harnesses to start and sessions to resume.
cli/prompt
Package prompt asks for input with huh forms on stderr.
Package prompt asks for input with huh forms on stderr.
cli/ui
Package ui renders human-facing CLI output.
Package ui renders human-facing CLI output.
config/edit
Package edit changes configuration fragments through their YAML node tree.
Package edit changes configuration fragments through their YAML node tree.
configedit
Package configedit makes configuration edits: it changes fragments through their YAML trees, validates the configuration they produce, and writes them.
Package configedit makes configuration edits: it changes fragments through their YAML trees, validates the configuration they produce, and writes them.
e2e
Package e2e runs the agx binary against a fake harness and a fake MCP server.
Package e2e runs the agx binary against a fake harness and a fake MCP server.
mcptools
Package mcptools describes MCP tools to people and programs: suggestions for mistyped names, TypeScript-like signatures and declarations from JSON Schemas, and arguments coerced by them.
Package mcptools describes MCP tools to people and programs: suggestions for mistyped names, TypeScript-like signatures and declarations from JSON Schemas, and arguments coerced by them.
sessions
Package sessions lists the harnesses' own sessions for the launcher and agx sessions: it caches what adapters parse from their stores, and remembers which harness definition started each session.
Package sessions lists the harnesses' own sessions for the launcher and agx sessions: it caches what adapters parse from their stores, and remembers which harness definition started each session.
shims
Package shims maintains executables that run harness definitions from any shell.
Package shims maintains executables that run harness definitions from any shell.
tools/schemagen command
Command schemagen writes the configuration JSON Schemas published in the repository.
Command schemagen writes the configuration JSON Schemas published in the repository.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL