Skip to main content

twagent logo

Unified configuration framework for AI coding agents — Claude Code, Copilot CLI, Pi, Codex, VS Code, opencode. One canonical TOML, one CLI, two deploy modes.

What you get

  • One config at ~/.config/twagent/config.toml describes every skill, subagent, prompt, instruction template, and MCP server you care about.
  • One CLI (twagent apply) renders Jinja templates, symlinks file artifacts, and compiles MCP configuration in each agent's native shape.
  • Runtime secrets stay as ${VAR} references (or Codex's environment-backed fields), so twagent never writes resolved credentials.
  • Two deploy modes: globally (each agent's default profile to ~/.claude/, ~/.copilot/, etc.) or locally (into the current directory).
twagent apply --global                          # sync everything globally
twagent apply -s tw-claude                      # local: drop a profile into cwd
twagent apply --global -s e2e-emea              # swap MCP env for the day
twagent apply --global -s e2e-emea -a copilot-cli  # one agent only

Mental model

  ┌──────────────┐    ┌─────────────┐
  │  Registries  │ →  │   Profiles  │ →  apply (local | global)
  │              │    │ (composable │        │
  │ instructions │    │   bundles)  │        ▼
  │ skills       │    │             │   per-agent paths
  │ subagents    │    │  extends... │   (global or cwd-relative)
  │ prompts      │    │             │
  │ servers      │    │             │
  └──────────────┘    └─────────────┘
  • Artifacts live in registries — globally unique name + source path.
  • Profiles bundle artifact references, composable via extends.
  • Agents declare capabilities and per-kind paths (global and per-project).
  • global_profile is the bridge: each agent names exactly one profile as its default loadout. When you run twagent apply --global, the agent's global_profile is resolved (including all extends chains) and the resulting artifacts are deployed to the agent's paths.global.* locations.
  • --select is polymorphic (profile or artifact names, mixed) and exhaustive (only kinds in the selection deploy).

How global_profile works

[agents.copilot-cli]
global_profile = "tw-copilot"   # ← this is the default loadout

[profiles.tw-copilot]
extends      = ["core", "pr_review", "web_research"]
instructions = ["AGENT-md"]

[profiles.core]
skills = ["bkmr-memory", "twmux", "skill-creator", "tw-comprehend"]

[profiles.pr_review]
skills = ["tw-review", "tw-add-pr-review", "tw-check-pr"]

Running twagent apply --global resolves the full extends tree and deploys all referenced skills, instructions, and servers to the agent's global paths. Each agent can have a different global_profile, so Claude, Copilot, and Pi can share profiles (via extends) while each carrying a distinct default set.

Without a global_profile, apply --global skips that agent entirely — it only deploys agents that declare one.

Install

uv tool install twagent
# or, from a clone:
make install

Python 3.13+. Optional: fzf >= 0.35 improves the --interactive picker.

First deploy

twagent edit --init                # bootstrap a commented starter config
$EDITOR ~/.config/twagent/config.toml
twagent apply --global -n          # preview
twagent apply --global             # deploy

→ Full walkthrough: Quick Start (10 min) and Tutorial (30 min, two-agent setup).

Documentation

Read When
Overview What twagent is, who it's for, supported agents.
Quick Start First deploy in 10 minutes.
Tutorial Realistic two-agent setup with project overlay and MCP secrets.
Reference: Commands Every command, every flag.
Reference: Configuration Full TOML schema with worked examples.
FAQ Common questions and gotchas.

Develop

uv sync
make test
make format
make lint
make build

License

BSD-3-Clause.

Release files for twagent 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for twagent 2.4.0
File Size Uploaded
twagent-2.4.0.tar.gz 82.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for twagent 2.4.0
File Interpreter ABI Platform
twagent-2.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 136.6 kB

Release files / twagent-2.4.0.tar.gz

Download URL twagent-2.4.0.tar.gz
Size 82.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2cd8f93b4debb830b3b5cde78690d81cc04d4b7560e23379079e6f536b1808f7
BLAKE2b-256 checksum
How to use checksums
09446503906378cfab460759fe30b565f6eb58edc40ca0824dc0da3d16663f69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / twagent-2.4.0-py3-none-any.whl

Download URL twagent-2.4.0-py3-none-any.whl
Size 54.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a438be24e11af55be32308806d0d0e5326839ddf7dfa3daf8078e584adcc032b
BLAKE2b-256 checksum
How to use checksums
c2d16d2be3c229c6284a81c114d13df9c184fc1574aae6988aadb82e78ed4d55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

2.4.2

2 release files

2.4.1

2 release files

This release

2.4.0 This release

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page