yokoten · 横展
A guide for the journey. A guard at the bridge.
A free command-line tool that keeps AI coding agents safe and walks you, step by step, along the road good software teams use — so anyone can build software the right way.
One person and a few AI agents, building to a professional team's standard. yokoten was built this way.
The dream
Everyone can build software the way good teams do: the whole cycle, from plan to release and beyond. Someone new to programming starts on the right road on day one, and walks it safely with AI agents.
- The guard
- keeps you safe on the way. A risky command is stopped before it runs, and the agent is told why.
- The guide
- teaches you the road.
doctorknows which of five stages your project is at, and names the one next step. - The dream
- is where the road goes: you build the way good teams build, and learn it by doing it.
Yokoten (横展) is Toyota’s word for rolling one line’s fix out to every line. Here, a lesson one project learns becomes a check that every project gets.
What changes on day one
See it at work
Three moments from a session. Step through them.
git push --tagsyokoten: git push --tags pushes tags. Only the owner decides when to release. If the owner asked for this, they start the session with YOKOTEN_RELEASE_APPROVAL set.
The agent tries to push a release tag. The hook stops it before it runs, and the agent reads why.
yokoten: stage 1 of 5, safety net. Next: no AGENTS.md, so the agents have no written rules here; `yokoten init` adds one.Why: an agent follows the rules it can read, and only those.Tell the user in plain words, one step at a time, and offer to do it (as-is, lighter, or not now with a reason).
Every session starts with doctor: the stage, the one next step, and why it matters.
ClaudeYou’re at stage 1 of 5, the safety net. This project has no AGENTS.md yet, so I have no written rules to follow here. I can add one with yokoten init. Shall I add it as it is, make a lighter version, or leave it for now?
The agent tells you in plain words and offers to do it. You decide. An example reply; the wording is the agent’s own.
The road
Software teams work in a loop: plan, build, check, review, release. yokoten takes you along it one stage at a time. Every stage is something the yokoten repo already does, so you can see it working.
doctor: stage 1 · safety net
Safety netyou are here
You never have to work out where you are.
doctorreads your project’s files and says it, for examplestage 1 of 5, safety net. A new project starts at stage 1. The order is advice, not a gate.- You learn
- rules the agents read, checks that stop them
- See it here
- AGENTS.md
doctor: stage 2 · issues and pull requests
Issues and pull requests
- You learn
- every change has a reason; CI passes before it merges; labels, milestones, a board
- See it here
- issues, pull requests, the board
doctor: stage 3 · release
Release
- You learn
- clear commit messages, a changelog, version numbers
- See it here
- CHANGELOG.md
doctor: stage 4 · a team of agents
A team of agents
- You learn
- a bot, workers, a reviewer; you stay the boss
- See it here
- the guide
doctor: stage 5 · going public
Going public
- You learn
- a privacy check over all history, security settings, protected branches
- See it here
- security policy
The road to the dream
Each milestone covers more of the cycle, for more people and more tools.
Now, before 26 Oct 2026
doctorwalks you along the road; a release flow; checks on GitHub settings;npx yokoten; the same guard in Codex and Gemini CLIMeta hackathon, 26 Oct – 3 Nov
an agent that reads an old project and drafts how to adopt yokoten; Muse Code support
Next
Gitea and other code hosts; a short spec before larger changes; the OpenSSF Best Practices badge as public proof
Every step is planned in the open: the board shows what is being built today, and the milestones show what comes next.
Quick start
You need Node 22.18 or later. Nothing else: no build step, no dependencies.
git clone https://github.com/coo1white/yokotennode yokoten/bin/yokoten.ts install # once per computercd your-projectnode ~/.local/share/yokoten/bin/yokoten.ts init # once per project
Then open the project in Claude Code. It tells you which stage you are at, and the one next step.
Or paste this into Claude Code, in your project:
Read https://yokoten.app/agents.md and set yokoten up in this project.
agents.md is a short, plain list of steps. Your agent checks Node, installs yokoten, runs doctor, and asks you before it commits anything.
A one-command npx yokoten comes with the npm release.
Check it works
In your project, run doctor. It shows the whole road and marks the next step:
node .yokoten/bin/yokoten.ts doctoryokoten 0.1.0, self-test okthe road: stage 1 of 5, safety net 1. safety net done rules done tool-hook done commit-check done runtime next tests: CI does not run the tests; add a step that runs `npm test` … 2. issues and pull requests …
Shortened. Your steps will differ.
To see the guard stop something without running anything, hand it a pretend tool call:
echo '{"tool_name":"Bash","tool_input":{"command":"git push --tags"}}' | node .yokoten/bin/yokoten.ts hookyokoten: git push --tags pushes tags. Only the owner decides when to release. If the owner asked for this, they start the session with YOKOTEN_RELEASE_APPROVAL set.
Nothing is pushed: the hook only reads the call. Exit code 2 means “blocked”.
What it can’t do
Honest limits, from the guide:
- The guards read command text. A command put together in pieces gets past them. They catch mistakes and drift; they aren’t a lock. The lock is on the server: branch protection, code owners, and a bot that can’t release or change CI.
- Server settings aren’t checked yet.
doctorlists the three steps for the owner. Checking them through the API is planned. - Claude Code first. The guard also runs in Codex and Gemini CLI, but nobody has yet seen it block a real session there (#30). Muse Code support is planned.
Learn more
Start on the right road
Four lines, once. Or ask your agent to do it.
git clone https://github.com/coo1white/yokotennode yokoten/bin/yokoten.ts install # once per computercd your-projectnode ~/.local/share/yokoten/bin/yokoten.ts init # once per project