agent-toolkit

Pinned installers and config for my coding setup

T3 Code, the Claude Code CLI, Node, Git, the GitHub CLI, PowerShell 7 and Python at tested versions, with 36 MCP servers, 239 plugins and every cache those tools would otherwise download on first run, in one GitHub release. Two machines built from the same release come out the same.

Get v1.0.2 from GitHub Install steps

release
v1.0.2
published
assets
41
in total
9.84 GiB
rebuilt
every Sunday, 08:00 UTC

2 GiB the largest file GitHub takes

ubuntu-dev.tar.gz is 3.95 GiB, so it ships as 3 parts of 1900 MiB or less

Release v1.0.2 is consistent: 41 assets, digests match SHA256SUMS.txt.

Each column is one file on the release, drawn to scale and grouped by the folder it unpacks to. Point at one, tap it, or focus the plan and use the arrow keys to read its name, size and digest. The animation replays what the build did; it doesn't check anything live.

Install

  1. Get the scripts

    Clone this repo, or download repo--agent-toolkit-*.zip from the latest release and extract it. Run the rest from its root.

  2. Download the release

    .\scripts\download-release.ps1 -To C:\toolkit-assets

    Every asset into one folder, through the GitHub CLI if it's there and plain HTTPS if not. A file already there is kept only if its hash matches.

  3. Check it and restore the folders

    .\scripts\unpack-release.ps1 -From C:\toolkit-assets

    Checks every file against SHA256SUMS.txt, joins the distro's parts and checks the result, then puts each asset back into windows\, linux\, wsl\ or caches\.

  4. Install, from an elevated PowerShell

    .\scripts\install-windows.ps1

    Installs the apps silently, restores the tool and browser caches, installs the MCP servers, plugins and skills offline, seeds config only where none exists, and sets the variables that turn off the updaters and telemetry. Open a new terminal afterwards.

    .\scripts\setup-wsl.ps1

    Installs WSL from the bundled MSI and imports ubuntu-dev, a distro that already has Git, Node, the GitHub CLI and the Claude Code CLI inside it. The first time WSL is turned on, Windows may want a reboot.

    sudo bash scripts/install-linux.sh

    For a standalone Debian or Ubuntu machine, with linux/ and caches/ restored: installs T3 Code from the .deb and provisions the same tools as the WSL distro.

What install-windows.ps1 printed on a clean GitHub Actions Windows runner, in the v1.0.2 build's smoke test. The runner skips the app installers and the environment (-SkipApps -SkipEnv); the rest ran. Trimmed where it says so.
== Restoring T3 tool cache
== Restoring T3 manifest snapshots
== Restoring Playwright browsers
== Installing npm packages from the seeded cache
WARNING: global npm install of agent-device from the cache failed; T3 still works from its own tool cache
WARNING: global npm install of expo-device-hub from the cache failed; T3 still works from its own tool cache
== Installing Claude Code skills
== Installing Python packages for the document skills
== MCP servers
== npm MCP servers (19)
  ok  playwright
  ok  chrome-devtools
  ok  filesystem
  (16 more, all ok)
== Python MCP servers -> ~\.venv-mcp\<id>
  ok  git
  ok  fetch
  (15 more, all ok)
== registered 6 default MCP server(s) in C:\Users\runneradmin\.claude.json
== catalog: C:\Users\runneradmin\agent-toolkit-docs\mcp-servers.md
== Claude Code plugin marketplaces and language servers
== Claude Code plugins
  marketplace atk-core-plugins             ok
  marketplace atk-knowledge-work           ok
  (5 more marketplaces and 12 plugins, all ok)
== Language servers for the LSP plugins
  lsp npm     pyright: ok
  lsp npm     typescript-language-server: ok
  lsp npm     typescript: ok
  lsp bin     rust-analyzer: C:\Users\runneradmin\.local\bin\rust-analyzer.exe
  verified    12/12 plugins enabled and loading
== Placing offline docs
== Seeding T3 Code settings (only files that do not exist yet)
== Seeding Claude Code config (skips onboarding; no account data)

Done. Open a NEW terminal, then launch T3 Code.
In Settings > Providers > Claude set Binary path to:
  C:\Users\runneradmin\.local\bin\claude.exe
and add the endpoint variables from config\claude-provider-env.example.
Offline docs: C:\Users\runneradmin\agent-toolkit-docs

Pinned in v1.0.2

Read from the release's own VERSIONS.md, which lists every file with its SHA-256. This page is rewritten each time a release is published.

Pinned versions
ComponentVersion
T3 Code0.1.8-nightly.20261105.4205
Claude Code CLI2.1.318
Node.jsv24.22.2
Git for Windows2.56.0.4
GitHub CLI2.103.3
PowerShell 77.6.9
Python3.13.17
WSL platform3.0.3.0
Ubuntu for WSLnoble
T3 tool cacheagent-device 0.21.31, chrome-headless-shell 156.0.8078.80, expo-device-hub 0.19.1
Playwright1.64.1 with chromium_headless_shell-1248 and chromium-1248
  • 36MCP servers, 6 registered by default, the rest one claude mcp add away
  • 239plugins from 7 vendored marketplaces, 12 enabled
  • 3language servers for the LSP plugins: pyright, typescript-language-server and rust-analyzer

Skills, in ~/.claude/skills: the public anthropics/skills set (Apache-2.0), t3dotgg/tstack (MIT) and killer-council from skills/ in this repo (MIT), with a Python wheelhouse for their dependencies.

Also a seeded npm cache so all of it installs with --offline, the Claude Code and T3 Code docs as markdown, and Linux copies of the T3 tool cache and the Playwright browsers.

The plugin marketplaces

Vendored, so they install and load offline. Their remote MCP connectors are turned off; each marketplace's VENDORED.md says what changed. Three are renamed with an atk- prefix because Claude Code reserves the upstream names for copies loaded from GitHub. Browse and enable the rest with /plugin.

MarketplaceUpstreamPluginsEnabled
atk-core-pluginsanthropics/claude-plugins-official49feature-dev, code-review, pr-review-toolkit, commit-commands, code-simplifier, claude-md-management, security-guidance, pyright-lsp, typescript-lsp, rust-analyzer-lsp
atk-knowledge-workanthropics/knowledge-work-plugins22engineering
superpowers-devobra/superpowers1superpowers
claude-code-workflowswshobson/agents92none
voltagent-subagentsVoltAgent/awesome-claude-code-subagents10none
trailofbitstrailofbits/skills46none
atk-financial-servicesanthropics/financial-services19none
The MCP servers

Bold ones are registered in Claude Code by default. Every one, registered or not, is written to ~/agent-toolkit-docs/mcp-servers.md with its claude mcp add line. Cloud-backed servers that need a vendor's service are left out on purpose.

From npm playwright, chrome-devtools, filesystem, memory, sequential-thinking, desktop-commander, dbhub, mongodb, kubernetes, gitlab, task-master, mcp-remote, inspector, jetbrains, nx, azure-devops, code-runner, sentry, pdf

From PyPI git, fetch, time, markitdown, atlassian, serena, redis, duckdb, word, powerpoint, excel, jupyter, prometheus, docker, semgrep

As binaries github, grafana

All 41 release assets and their SHA-256

The same digests GitHub records for each upload; verify-release.ps1 checks them against the release's SHA256SUMS.txt before anything is published.

AssetSizeSHA-256
repo--agent-toolkit-v1.0.2.zip860 KiBc90a29167b0c3081af066291a394c899b771cf4edc98404b460950597936170f
SHA256SUMS.txt3.9 KiB324b2eec303738802d086d6050fef4201b29ff531dac2862ac86a70878174ec2
windows--claude-2.1.318-win32-x64.exe327 MiBb9aa5b08dc2cc46ea77d334dce792d1b8fdbb3a43bb290efdebdc905b1181082
windows--T3-Code-0.1.8-nightly.20261105.4205-x64.exe278 MiB0b01c19dca2f2181e2dd6c1697679d1c1aae83216c13f4565adca90d4a0d9897
windows--T3-Code-0.1.8-nightly.20261105.4205-x64.zip187 MiBc1596d067a61c6de32c9917f40f53215d7afa79dcef8321d73b89f0a9a327c3d
windows--PowerShell-7.6.9-win-x64.msi112 MiB50d33c7494aaf82b987cfd4de3f232d04f91fdd4c0deeca8a669cced3e7cf8f9
windows--t3-0.1.8-nightly.20261105.4205-win32-x64.zip108 MiBdc238d3cc5cd4add19c4dd336623c6bbdaf381fad3781c06042fa747f9bc59df
windows--Git-2.56.0.4-64-bit.exe64 MiB4961a4a8cc778d8b6e00a5819e5fe4d078b754555aff7aedc2d77a5d74c2de80
windows--node-v24.22.2-x64.msi32 MiB9231bf64d19bef391dd5ee8af65411d3799c3c44a842d2320849cc1da60b6b6d
windows--python-3.13.17-amd64.exe29 MiB5da012101ba2e17113a9a1cd901e9ce1441086f2b7ecb5de06ec94163899a190
windows--gh_2.103.3_windows_amd64.msi15 MiB5073112b7abb5ffbba24b76aee7e89269af531218c0a42751f5f0bfb6440c2cc
windows--SHASUMS256-node-v24.22.2.txt3.1 KiBaec92ae945293821c22aed4c37b97741688254bac353b861fc9fb25b81ce4567
windows--SHA256SUMS571 bytes92233746261cf03422a42263e0630cb3651747951cd315af92d1079add0c9e47
windows--nightly.yml436 bytesa219b50271959d2e66924c4883c91d03f70a0578a2b5550b1b0a48b74815a6ef
linux--claude-2.1.318-linux-x64322 MiB708c77b204db30086ff6f1ed34577bda03e1be74ced80557cbf7b54249ebf0bd
linux--claude-2.1.318-linux-x64-musl309 MiBe6ff03823153a699d708c88c2fa87d18a1f6b45f13b14a985a221f8af442dd54
linux--T3-Code-0.1.8-nightly.20261105.4205-x86_64.AppImage183 MiBfbc5ebb0bae496d3b0e7e130043544019d46ba672214f233f40fc65c2fba247d
linux--T3-Code-0.1.8-nightly.20261105.4205-amd64.deb153 MiB8a749230371d20c41445ab1b3ca2a4ddb002f9acee33a65bea56837444889cb2
linux--t3-0.1.8-nightly.20261105.4205-linux-x64.tar.gz118 MiBa75235405d988cee035bc12d0984bf4a5de240025d1f5e0347fb947b2efe9d27
linux--node-v24.22.2-linux-x64.tar.xz31 MiB48cc0e21e048790e54c0cf5749c2725005313d652651c40b7a21feb9697aaf75
linux--gh_2.103.3_linux_amd64.deb14 MiBe3bafef96328d1a67de3a968bdfe1cc2ffd58cf6aba8b5e201356897ed06bb3d
caches--npm-cache.zip1.13 GiBae0f0e5674a1a65ff1334471d943c7101d7de9aef8591627d2c0a563092e2293
caches--pip-wheelhouse.zip877 MiB88f9545217b8dca1c7a0c98e879eae4d5eb08247786393fa0c652bcfab533636
caches--playwright-browsers.zip326 MiB56df53d3ef87abac8a1da02b8d99ebafe86c5d934ddd907e3085db38abc5f416
caches--playwright-browsers-linux.zip293 MiB44398af5824654c8155e2972ff03f9db3d46dbc0433800552887be79051d61af
caches--t3-tools-win.zip141 MiB62d8d9109f9e0b05367b0fa2536ecbb430db57333d96e05bcf97f6750f33e9f4
caches--t3-tools-linux.zip139 MiBcaba236e09af9e698879807507ecfd48891eb3f5e9c373f3b11e6914570ea83a
caches--mcp-bin.zip54 MiB956a522783bdea2a7ad1efb6b346aff8f8cb35e77b88ada7976c832c8768ecdd
caches--lsp-bin.zip32 MiB8e41f89c4dae48a1c5373461326ecda3ff2f26aa3aa3d1c48eb4fad01524356d
caches--claude-plugins.zip19 MiBad44c02933f8d3efb8bceb9e31750e8b4ba303d174c490b240984d1bf0c84fe9
caches--npm.zip13 MiB070a23df1065e08ae17804e782d2dc08c68f1f29491e83e0e3f10bba5432f292
caches--claude-skills.zip4.2 MiB493c7cceb6f97a219699ee768e2dfab7752b3674da156de72cb3089c37a0cd10
caches--claude-code-docs.zip3.2 MiB448f5add69a7296d63eae1e4c3a4fe6a62836a6d875012d6b4149011d3720559
caches--t3-userdata.zip147 KiBfc03e65eb56e1e23d3cf167f5cf0f5120080f138eca3246594026a852dbaf4e4
wsl--ubuntu-dev.tar.gz.part11.86 GiBf65920ab965de3e9c21973984586a80705bfeb314004c5db985f3aa64c37eda6
wsl--ubuntu-dev.tar.gz.part21.86 GiB0307385c58a3ea66ed7933feb6b3d82c357a1e768fbfaa1adb85067a195b8417
wsl--ubuntu-dev.tar.gz.part3241 MiBc82474cd212d4def38f000aa8d0fa854131a4503b06e401237279d620094e7b2
wsl--ubuntu-dev.tar.gz.sha25688 bytes02c23d9510b7576246db581e663d15700ee49699f9c07c81574f652a84efacbd
wsl--wsl.3.0.3.0.x64.msi351 MiBae977286974255bd26bf925f00f40f5692c6b2084155cbc0563c09aea091f211
wsl--ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz340 MiB8251e27ffff381a4af5f41dcb94d867de3e0d9774a9241908ab34555d99315ea
wsl--ubuntu-noble-SHA256SUMS642 bytes337176fdeda3dbbf7bd36146894c03670d5ed8cffc2bd804f39d4c4ace0d424f

Why pin everything

Each of these tools fetches something the first time it runs: an updater, a headless browser, a device agent, a model manifest. On a machine that should stay on one known build, or talk to one endpoint, those fetches are the problem. The release carries them all.

The install sets these as user environment variables, among others. The full list, with what each one turns off, is in config/env-vars.md.

T3CODE_DISABLE_AUTO_UPDATE=1
T3CODE_TELEMETRY_ENABLED=0
DISABLE_AUTOUPDATER=1
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
npm_config_offline=true
PIP_NO_INDEX=1

The Claude Code provider's endpoint is set per instance in T3 Code, under Settings, Providers, Claude. Templates for an Anthropic-compatible gateway, Bedrock and Vertex are in config/claude-provider-env.example.

How a release is built

By weekly-release.yml, on GitHub's runners. It publishes only after every check below has passed; a failed check stops it before anything is published.

  1. schedule Sundays, 08:00 UTC

    Start

    On its own every week, or by hand from the Actions tab with a pinned T3 tag or Claude Code version, and publishing off to leave a draft for review.

  2. collect Windows runner

    Fetch everything

    collect.ps1 downloads the newest T3 nightly, Claude Code, the installers, the plugin marketplaces, the MCP servers and every cache, and reconciles the versions.

  3. distro Ubuntu runner

    Bake the Linux side

    Builds the Linux wheelhouse natively and the provisioned Ubuntu image in a chroot, then opens the image and checks it: the default MCP servers registered, at least 12 plugins enabled, the skills and binaries in place.

  4. publish Windows runner

    Install, pack, verify, publish

    Runs the T3 and Claude Code binaries and check-pins.ps1, then install-windows.ps1 on the clean runner and checks what it registered. Writes VERSIONS.md, packs the assets and cuts any of 1900 MiB or more into parts, uploads a draft, and has verify-release.ps1 compare every digest GitHub recorded with SHA256SUMS.txt. Only then it publishes, and rewrites this page.

Tested on

  • Windows 11 Pro 26300 with Windows PowerShell 5.1: the bake, collect and pin checks run here.
  • Ubuntu 24.04 noble under WSL 2: the distro is baked and its contents checked here.
  • A clean GitHub Actions Windows runner: every weekly build runs the install script there and checks the MCP servers, plugins, language servers and skills before it publishes.
  • Not tested: a full install from the release assets on a second physical machine, end to end.

Known issues

  • The app installers run with silent flags that are right for the pinned versions; a newer installer may change them.
  • T3 Code pins its on-demand tool versions per build. After bumping T3, run scripts/check-pins.ps1 -Fix, or the cache is ignored and a download is attempted.
  • Importing the raw Ubuntu rootfs instead of the baked distro needs a network to fetch the Playwright browsers.
  • On Linux without PowerShell, join the distro by hand: cat name.part1 name.part2 name.part3 > name, then sha256sum -c name.sha256.
  • The Docker MCP server is Windows-only; its dependencies don't resolve on Ubuntu's Python 3.12.