Gives Claude a tool that reads how much of the context window remains.

<img src="assets/logo/thunderbolt-icon-256.png" width="128" height="128" alt="Turbo lightning hammer">
<h1 align="center">Turbo</h1>
Reusable workflows for planning, building, reviewing, and shipping with AI coding agents.
Turbo gives Claude Code and Codex a repeatable development process, packaged as Markdown skills. Use a skill for a single task, or combine them into a workflow that takes a change from idea to pull request.
Claude Code: production-tested · Codex: experimental, with skill parity but less real-world use
Get started · What you can do · Browse the guides
Plan → Implement → Finalize
Start with a change you want to make:
/turboplan add password reset to the app
Turbo assesses the scope and helps you settle the approach. Clear-scope changes proceed to implementation once you agree on the shape; when the approach needs writing down, you get a reviewed plan to run with /implement-plan in a fresh session. /finalize then checks, reviews, and polishes the change and takes you through shipping. You can also run /finalize on work you built yourself.
Examples use Claude Code's /skill-name syntax. In Codex, use $skill-name:
$turboplan add password reset to the app
What you'll need:
/finalize uses for peer review. You can swap in your own review setup.See requirements for what setup changes on your machine and what your project should have.
Then paste this into Claude Code or Codex:
Walk me through the Turbo setup. Read SETUP.md from the tobihagemann/turbo repo and follow the guide for your edition.
The agent selects your edition, installs the skills, and walks you through tools and configuration interactively.
Prefer to read the steps first? Open the Claude Code setup or Codex setup guide.
You can start with any of these skills; you don't need to learn the whole pipeline first.
| I want to… | Claude Code | Codex |
|---|---|---|
| Plan and build a change | /turboplan | $turboplan |
| Understand a failing test or bug | /investigate | $investigate |
| Review a pull request | /review-pr | $review-pr |
| Finish and ship a change | /finalize | $finalize |
Skills also work naturally in a request: tests are failing in the auth module, can you please /investigate?
See more prompt examples for dependency updates, UI testing, PR feedback, and other everyday tasks.
/self-improve captures corrections and project conventions in instructions, memory, and skills, so future sessions can build on what you've learned.You stay involved in choosing the approach and reviewing the result. Turbo works best alongside the checks and engineering judgment you already bring to a project.
If Turbo helps you ship, consider sponsoring my open source work.
Distributed under the MIT License.
hooks/register.ts 29 lines1import type { Register } from 'claude-code'
2
3export const register: Register = on => {
4 on('session.start', async ($, e, next) => {
5 await $.tool.register({
6 name: 'read',
7 description: "Reads how much of this session's context window remains.",
8 })
9
10 return next(e)
11 })
12
13 on('tool.call', { tool: 'mcp__context-level__read' }, async ($, e) => {
14 if (e.agentId !== undefined) {
15 return {
16 result: "No reading for a subagent: this tool reads the main session's context window.",
17 }
18 }
19
20 const { context } = await $.session.usage()
21
22 if (context.percent === undefined) {
23 return { result: 'No reading yet for the current context window.' }
24 }
25
26 return { result: `${100 - context.percent}% of the context window remains.` }
27 })
28}
29