Claude Code plugin that shunts work saving 82-94% of tokens A new Claude Code plugin called shunt redirects I/O-heavy work to AiKA modes, saving 82-94% of tokens on large file reads and boilerplate generation. The plugin uses hooks, scripts, and skills to delegate tasks through the Portal CLI actions registry, requiring the portal plugin and jq. It includes two AiKA modes, bulk-reader and code-writer, which can be created if not present. A Claude Code plugin that shunts I/O-heavy work to AiKA modes, saving 82-94% of tokens on large file reads and boilerplate generation. Three layers, from hard gate to soft suggestion: 1. Hooks block Claude from reading large files and redirect to the bulk-reader skill 2. Scripts handle the AiKA invocation and output cleanup 3. Skills tell Claude when and how to call the scripts Claude never assembles bash pipelines from prose. It calls a script with named arguments. The scripts handle everything internally. Delegation goes through the Portal CLI actions registry — one aika:invoke-chat call per delegation — so the plugin works against any Portal instance with AiKA enabled. Modes are addressed by name and resolved server-side: case-insensitive, preferring your own mode, then your groups', then public ones; a name matching nothing or several modes equally fails with the candidate ids. - jq https://jqlang.org — brew install jq - The portal plugin from this marketplace, which provides the Portal CLI that shunt delegates through: claude plugin install portal@portal Then, in a new session, set up and authenticate the CLI against your Portal instance: /portal:setup shunt sets PORTAL CLI ENABLE EXPERIMENTAL for its own calls the actions registry is experimental in portal-cli 0.4.x ; you only need it exported for the manual portal-cli commands below. Check whether the two AiKA modes bulk-reader and code-writer already exist on your instance — many instances ship them as public modes: portal-cli actions aika:list-modes --json --input '{"search": "bulk-reader"}' If they exist, no mode creation is needed — just install the plugin and go. If not, or to create your own customized versions e.g. different model or instructions : portal-cli actions aika:create-mode --input '{ "name": "bulk-reader", "description": "Bulk file reader for code analysis", "instructions": "You are a precise code analyst. Read the provided files and answer the question concisely. Output structured bullets only. No greetings, no prose, no preambles, no summaries. Lead every bullet with the exact name, type, or line number. Use nested bullets for details. Skip anything the caller did not ask for.", "tags": "coding", "delegation" , "resource limits": { "temperature": 0.2 } }' portal-cli actions aika:create-mode --input '{ "name": "code-writer", "description": "Boilerplate code generator", "instructions": "You generate code files based on a spec and reference files. Match the existing patterns, conventions, naming, and style exactly. Output only the code — no explanations, no markdown fences unless asked. If the spec is ambiguous, make reasonable choices that match the patterns in the reference code.", "tags": "coding", "delegation" , "resource limits": { "temperature": 0.2 } }' A mode you create is private and owned by you, and name resolution prefers your own modes — so your customized bulk-reader automatically shadows the public one, no configuration needed. shunt/ ├── .claude-plugin/ │ └── plugin.json Plugin manifest name, description, version ├── hooks/ │ ├── hooks.json Hook registration PreToolUse matchers │ ├── check-file-size Blocks Read on files 350 lines │ └── check-bash-read Blocks cat/head/tail on large files ├── scripts/ │ ├── lib/ │ │ └── aika.sh Shared aika:invoke-chat plumbing │ ├── bulk-read Invokes the bulk-reader mode │ └── code-write Invokes the code-writer mode ├── skills/ │ ├── bulk-reader/ │ │ └── SKILL.md When/how to call bulk-read │ └── code-writer/ │ └── SKILL.md When/how to call code-write └── evals/ ├── run.sh Runs hook + transport evals 50 tests ├── hook-evals.json Read hook test cases 17 ├── bash-hook-evals.json Bash hook test cases 17 ├── transport-evals.sh scripts/lib/aika.sh against a stubbed CLI 16 ├── evals.json End-to-end skill test cases 3 ├── benchmarks.json Token savings scenarios 4 └── fixtures/ Test fixture files Delegates file reading to AiKA. Files are wrapped in XML tags