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.
- 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.
Install
-
Get the scripts
Clone this repo, or download
repo--agent-toolkit-*.zipfrom the latest release and extract it. Run the rest from its root. -
Download the release
.\scripts\download-release.ps1 -To C:\toolkit-assetsEvery 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.
-
Check it and restore the folders
.\scripts\unpack-release.ps1 -From C:\toolkit-assetsChecks every file against
SHA256SUMS.txt, joins the distro's parts and checks the result, then puts each asset back intowindows\,linux\,wsl\orcaches\. -
Install, from an elevated PowerShell
.\scripts\install-windows.ps1Installs 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.ps1Installs 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.shFor a standalone Debian or Ubuntu machine, with
linux/andcaches/restored: installs T3 Code from the.deband provisions the same tools as the WSL distro.
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.
| Component | Version |
|---|---|
| T3 Code | 0.1.8-nightly.20261105.4205 |
| Claude Code CLI | 2.1.318 |
| Node.js | v24.22.2 |
| Git for Windows | 2.56.0.4 |
| GitHub CLI | 2.103.3 |
| PowerShell 7 | 7.6.9 |
| Python | 3.13.17 |
| WSL platform | 3.0.3.0 |
| Ubuntu for WSL | noble |
| T3 tool cache | agent-device 0.21.31, chrome-headless-shell 156.0.8078.80, expo-device-hub 0.19.1 |
| Playwright | 1.64.1 with chromium_headless_shell-1248 and chromium-1248 |
- 36MCP servers, 6 registered by default, the rest one
claude mcp addaway - 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.
| Marketplace | Upstream | Plugins | Enabled |
|---|---|---|---|
atk-core-plugins | anthropics/claude-plugins-official | 49 | feature-dev, code-review, pr-review-toolkit, commit-commands, code-simplifier, claude-md-management, security-guidance, pyright-lsp, typescript-lsp, rust-analyzer-lsp |
atk-knowledge-work | anthropics/knowledge-work-plugins | 22 | engineering |
superpowers-dev | obra/superpowers | 1 | superpowers |
claude-code-workflows | wshobson/agents | 92 | none |
voltagent-subagents | VoltAgent/awesome-claude-code-subagents | 10 | none |
trailofbits | trailofbits/skills | 46 | none |
atk-financial-services | anthropics/financial-services | 19 | none |
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.
| Asset | Size | SHA-256 |
|---|---|---|
repo--agent-toolkit-v1.0.2.zip | 860 KiB | c90a29167b0c3081af066291a394c899b771cf4edc98404b460950597936170f |
SHA256SUMS.txt | 3.9 KiB | 324b2eec303738802d086d6050fef4201b29ff531dac2862ac86a70878174ec2 |
windows--claude-2.1.318-win32-x64.exe | 327 MiB | b9aa5b08dc2cc46ea77d334dce792d1b8fdbb3a43bb290efdebdc905b1181082 |
windows--T3-Code-0.1.8-nightly.20261105.4205-x64.exe | 278 MiB | 0b01c19dca2f2181e2dd6c1697679d1c1aae83216c13f4565adca90d4a0d9897 |
windows--T3-Code-0.1.8-nightly.20261105.4205-x64.zip | 187 MiB | c1596d067a61c6de32c9917f40f53215d7afa79dcef8321d73b89f0a9a327c3d |
windows--PowerShell-7.6.9-win-x64.msi | 112 MiB | 50d33c7494aaf82b987cfd4de3f232d04f91fdd4c0deeca8a669cced3e7cf8f9 |
windows--t3-0.1.8-nightly.20261105.4205-win32-x64.zip | 108 MiB | dc238d3cc5cd4add19c4dd336623c6bbdaf381fad3781c06042fa747f9bc59df |
windows--Git-2.56.0.4-64-bit.exe | 64 MiB | 4961a4a8cc778d8b6e00a5819e5fe4d078b754555aff7aedc2d77a5d74c2de80 |
windows--node-v24.22.2-x64.msi | 32 MiB | 9231bf64d19bef391dd5ee8af65411d3799c3c44a842d2320849cc1da60b6b6d |
windows--python-3.13.17-amd64.exe | 29 MiB | 5da012101ba2e17113a9a1cd901e9ce1441086f2b7ecb5de06ec94163899a190 |
windows--gh_2.103.3_windows_amd64.msi | 15 MiB | 5073112b7abb5ffbba24b76aee7e89269af531218c0a42751f5f0bfb6440c2cc |
windows--SHASUMS256-node-v24.22.2.txt | 3.1 KiB | aec92ae945293821c22aed4c37b97741688254bac353b861fc9fb25b81ce4567 |
windows--SHA256SUMS | 571 bytes | 92233746261cf03422a42263e0630cb3651747951cd315af92d1079add0c9e47 |
windows--nightly.yml | 436 bytes | a219b50271959d2e66924c4883c91d03f70a0578a2b5550b1b0a48b74815a6ef |
linux--claude-2.1.318-linux-x64 | 322 MiB | 708c77b204db30086ff6f1ed34577bda03e1be74ced80557cbf7b54249ebf0bd |
linux--claude-2.1.318-linux-x64-musl | 309 MiB | e6ff03823153a699d708c88c2fa87d18a1f6b45f13b14a985a221f8af442dd54 |
linux--T3-Code-0.1.8-nightly.20261105.4205-x86_64.AppImage | 183 MiB | fbc5ebb0bae496d3b0e7e130043544019d46ba672214f233f40fc65c2fba247d |
linux--T3-Code-0.1.8-nightly.20261105.4205-amd64.deb | 153 MiB | 8a749230371d20c41445ab1b3ca2a4ddb002f9acee33a65bea56837444889cb2 |
linux--t3-0.1.8-nightly.20261105.4205-linux-x64.tar.gz | 118 MiB | a75235405d988cee035bc12d0984bf4a5de240025d1f5e0347fb947b2efe9d27 |
linux--node-v24.22.2-linux-x64.tar.xz | 31 MiB | 48cc0e21e048790e54c0cf5749c2725005313d652651c40b7a21feb9697aaf75 |
linux--gh_2.103.3_linux_amd64.deb | 14 MiB | e3bafef96328d1a67de3a968bdfe1cc2ffd58cf6aba8b5e201356897ed06bb3d |
caches--npm-cache.zip | 1.13 GiB | ae0f0e5674a1a65ff1334471d943c7101d7de9aef8591627d2c0a563092e2293 |
caches--pip-wheelhouse.zip | 877 MiB | 88f9545217b8dca1c7a0c98e879eae4d5eb08247786393fa0c652bcfab533636 |
caches--playwright-browsers.zip | 326 MiB | 56df53d3ef87abac8a1da02b8d99ebafe86c5d934ddd907e3085db38abc5f416 |
caches--playwright-browsers-linux.zip | 293 MiB | 44398af5824654c8155e2972ff03f9db3d46dbc0433800552887be79051d61af |
caches--t3-tools-win.zip | 141 MiB | 62d8d9109f9e0b05367b0fa2536ecbb430db57333d96e05bcf97f6750f33e9f4 |
caches--t3-tools-linux.zip | 139 MiB | caba236e09af9e698879807507ecfd48891eb3f5e9c373f3b11e6914570ea83a |
caches--mcp-bin.zip | 54 MiB | 956a522783bdea2a7ad1efb6b346aff8f8cb35e77b88ada7976c832c8768ecdd |
caches--lsp-bin.zip | 32 MiB | 8e41f89c4dae48a1c5373461326ecda3ff2f26aa3aa3d1c48eb4fad01524356d |
caches--claude-plugins.zip | 19 MiB | ad44c02933f8d3efb8bceb9e31750e8b4ba303d174c490b240984d1bf0c84fe9 |
caches--npm.zip | 13 MiB | 070a23df1065e08ae17804e782d2dc08c68f1f29491e83e0e3f10bba5432f292 |
caches--claude-skills.zip | 4.2 MiB | 493c7cceb6f97a219699ee768e2dfab7752b3674da156de72cb3089c37a0cd10 |
caches--claude-code-docs.zip | 3.2 MiB | 448f5add69a7296d63eae1e4c3a4fe6a62836a6d875012d6b4149011d3720559 |
caches--t3-userdata.zip | 147 KiB | fc03e65eb56e1e23d3cf167f5cf0f5120080f138eca3246594026a852dbaf4e4 |
wsl--ubuntu-dev.tar.gz.part1 | 1.86 GiB | f65920ab965de3e9c21973984586a80705bfeb314004c5db985f3aa64c37eda6 |
wsl--ubuntu-dev.tar.gz.part2 | 1.86 GiB | 0307385c58a3ea66ed7933feb6b3d82c357a1e768fbfaa1adb85067a195b8417 |
wsl--ubuntu-dev.tar.gz.part3 | 241 MiB | c82474cd212d4def38f000aa8d0fa854131a4503b06e401237279d620094e7b2 |
wsl--ubuntu-dev.tar.gz.sha256 | 88 bytes | 02c23d9510b7576246db581e663d15700ee49699f9c07c81574f652a84efacbd |
wsl--wsl.3.0.3.0.x64.msi | 351 MiB | ae977286974255bd26bf925f00f40f5692c6b2084155cbc0563c09aea091f211 |
wsl--ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz | 340 MiB | 8251e27ffff381a4af5f41dcb94d867de3e0d9774a9241908ab34555d99315ea |
wsl--ubuntu-noble-SHA256SUMS | 642 bytes | 337176fdeda3dbbf7bd36146894c03670d5ed8cffc2bd804f39d4c4ace0d424f |
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.
-
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.
-
collect Windows runner
Fetch everything
collect.ps1downloads the newest T3 nightly, Claude Code, the installers, the plugin marketplaces, the MCP servers and every cache, and reconciles the versions. -
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.
-
publish Windows runner
Install, pack, verify, publish
Runs the T3 and Claude Code binaries and
check-pins.ps1, theninstall-windows.ps1on the clean runner and checks what it registered. WritesVERSIONS.md, packs the assets and cuts any of 1900 MiB or more into parts, uploads a draft, and hasverify-release.ps1compare every digest GitHub recorded withSHA256SUMS.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, thensha256sum -c name.sha256. - The Docker MCP server is Windows-only; its dependencies don't resolve on Ubuntu's Python 3.12.