Installation¶
Install once, then invoke a workflow from a T3 thread attached to your project. The terminal commands below install local files; they do not call a model.
You need T3 Code with a working provider and local file/shell access. Python 3.10+
runs the core and most helpers. Homebrew installs Python 3.12. The Codex settings
audit and TOML conversion need Python 3.11+. GitHub workflows also use Git, gh,
and jq; install those only if you use the relevant plugins.
From source¶
Source installation uses the current five-workflow catalog. For a packaged release, use Homebrew catalog v0.5.0 or later as described below.
git clone https://github.com/seankoji-com/t3-plugins.git
cd t3-plugins
python3 bin/t3-plugins setup
python3 bin/t3-plugins doctor
python3 bin/t3-plugins prompt imps doctor
Use python3 bin/t3-plugins wherever the guides say t3-plugins.
setup
creates your user-owned snapshots and managed skill adapters
in ~/.agents/skills, ~/.claude/skills, and ~/.gemini/config/skills.
Enable Show skills in slash menu in T3's General settings and restart the agent
session.
Paste the final prompt command's output when a provider lacks skill discovery.
By default, setup does not edit provider settings or overwrite unowned or edited
skills. It also prints optional learning-directory grants. Apply them only with
--grant-learnings; see learnings and harvest.
doctor should print "ok": true for each installed plugin and exit 0. It checks
files, not T3 or your model. The final command prints a line beginning Read;
paste that whole line into T3 for the workflow readiness check. Then follow
your first workflow.
To install just one plugin's snapshot, use t3-plugins install ape.
Use t3-plugins setup imps for one plugin plus its adapters, or repeat
--root PATH to choose custom skill roots instead of the three defaults.
t3-plugins list shows the bundled catalog.
Homebrew release channel¶
Catalog v0.5.0 and later packages the five workflows in these guides. Earlier releases have different commands. Install the latest formula, then set up your user snapshots and skill adapters:
If already installed, use brew upgrade seankoji-com/tap/t3-plugins instead of
brew install. Check brew list --versions t3-plugins for v0.5.0 or later.
If the tap has not reached v0.5.0 yet, use the source installation above until its
formula update is merged.
Homebrew's formula test uses an isolated temporary home; run setup in your own shell
to populate your skill adapters.
Paths and remote environments¶
Snapshots live in ~/.local/share/t3-plugins/<plugin>/<version>/. A current symlink
gives the agent a stable entry path. Each snapshot contains its required shared files;
it does not depend on the source checkout remaining in place.
Install on the machine where the T3 provider executes tools. A path on your laptop is not automatically available to a remote provider. If its sandbox cannot access the default prefix, choose an allowed location:
t3-plugins --prefix /tmp/my-t3-plugins install
t3-plugins --prefix /tmp/my-t3-plugins prompt ape doctor
Set T3_PLUGINS_PREFIX to reuse a custom prefix. Use a persistent writable directory
for long-term installations; /tmp is only a demonstration.
Upgrade and rollback¶
Run these commands in your source checkout. For a Homebrew installation, use
brew upgrade t3-plugins, then t3-plugins setup and t3-plugins doctor. Installation
is idempotent for identical files. A changed package gets a new snapshot. Local edits
to that same snapshot cause refusal; --force is an explicit overwrite. Older
snapshots remain available, including any edits you made there.
Use a version printed by the installer to roll back:
Activation changes only current. Running install again while rolled back reports
reactivated: the snapshot already existed and only current moved back to it.
Run doctor afterward: an intentional rollback
reports snapshot_outdated when its files differ from the bundled package. The Homebrew
imps command also warns about this mismatch; it does not rewrite snapshots. Use the
rolled-back snapshot's cli.py when you need its matching state engine.
Installing the full catalog
activates each plugin separately; a failure can leave a partial catalog upgrade.
Read the per-plugin receipts and retry after resolving the error.
Retired plugins¶
offload-sidecar and prompt-builder left the catalog. t3-plugins setup removes their
slash-menu adapters when the adapter's own .t3-plugins-skill.json marker shows that
setup wrote it and the adapter is unchanged. It keeps edited adapters, symlinks,
adapters with corrupt markers, and any files you added, and prints a receipt for each.
Old snapshots stay until you remove them:
uninstall accepts a retired name only when an installed manifest records it.
Model routing¶
Delegating workflows choose child models from a routing config in your user
configuration directory: $XDG_CONFIG_HOME/t3-plugins/routing.json, or
~/.config/t3-plugins/routing.json when XDG_CONFIG_HOME is unset. Setup writes a
starting config from a capabilities response the agent saved to a file. It never
calls T3 or reads credentials, and it never replaces an existing config.
The config lists tiers from cheapest to most capable, a T3 runtimeMode per provider,
and the workhorse, reviewer and judgement roles. Each role entry names a provider
instance, a model, its tier and its lineage. Setup's tiers and lineage labels are
guesses: edit them. Providers default to auto, except OpenCode, which defaults to
full-access because its children otherwise stall on permission prompts.
{
"schema_version": 1,
"tiers": ["low", "medium", "high"],
"providers": {
"codex": {"runtimeMode": "auto"},
"opencode": {"runtimeMode": "full-access"}
},
"roles": {
"reviewer": [
{"providerInstanceId": "codex", "model": "MODEL_ID",
"tier": "medium", "lineage": "openai"}
]
}
}
resolve prints the role's candidates that the capabilities file can run, in tier
order, and lists each configured entry it could not use with the reason. It never
substitutes a different model. When a child's mode is broader than the parent
thread's, T3 refuses it, so resolve lowers the mode to the parent's and adds an
owner_action saying which mode to switch the child to. With --implementer-lineage
LINEAGE, each candidate is marked independent: true for another known lineage,
null when either lineage is unknown, false for the same lineage. They print in
that order. A repository can override
roles, providers or tiers in .t3-plugins/routing.json; repository policy wins.
Uninstall¶
Remove skill adapters from every root first, then remove snapshots. Omitting the
plugin name attempts removal for all bundled plugins in that root. It stops at the
first modified or unowned adapter with exit 2; preserve those files and resolve the
conflict before retrying. Retired adapters need their explicit name, or the owned
adapter cleanup performed by setup:
t3-plugins skills uninstall --root ~/.agents/skills
t3-plugins skills uninstall --root ~/.claude/skills
t3-plugins skills uninstall --root ~/.gemini/config/skills
t3-plugins uninstall ape
# For a Homebrew installation only:
brew uninstall t3-plugins
Snapshot removal deletes only manifest-owned, unmodified files for that plugin. Added files and local edits remain. Repeat for other snapshots you want removed before uninstalling the Homebrew command. Run state is never removed by uninstall.
Homebrew's imps command runs the packaged CLI directly. It does not silently
install, overwrite, or change your user snapshots.