IshooThe Ishoo manual

Ishoo

Version 0.13.0·Preview·by Strange Systems

The Ishoo manual

How to set up Ishoo, work with your coding agent through it, and read what the app is telling you. Ishoo is private beta: request an invite on ishoo.app; checkout is not open yet, so the install steps describe the launch build.

This page is the whole of The Ishoo manual: every section, about 11,000 words. It is short enough to read in one go.

What Ishoo is

Ishoo is the companion app for Claude Code, Codex and other MCP coding agents. You talk to your agent as usual; through Ishoo it turns that conversation into a north star, plans, tasks, decisions and recorded proof beside the code. The app shows what is happening and when you are needed.

Ishoo gives your coding agent the structure around the code: a durable north star and plan, bounded tasks, dependencies, decisions that survive the conversation, explicit responsibility, safe execution space and recorded proof. The agent maintains that machinery through Ishoo while you direct the outcome.

  1. Install Ishoo

    It connects to Claude Code or Codex, or any agent that uses MCP tools. Next time you open your agent, it already knows the workflow.

  2. Talk it through

    Tell your agent what you want to build, the way you already do. You stay in the conversation for every idea and every “not like that.”

  3. Your agent keeps the project

    It turns the conversation into a north star, plans, tasks and decisions, versions each change and runs your checks. You never file a ticket.

  4. Next time, say “go”

    The plan is waiting. Your agent works the backlog, or focuses wherever you point it.

Without Ishoo

The plan lives in a chat that ends. “Done” means the agent said so. You watch a terminal to find out whether it’s stuck.

With Ishoo

The plan lives with the project. Verification is recorded against the exact candidate it applies to. One glance at the eye tells you whether you’re needed.

You don’t manage tickets. Your agent creates and maintains the project record through Ishoo’s tools. Your part is to say what you want, read the plan, make the decisions that need a person, and judge the result. You direct; the agent manages the work.

The Ishoo window: a dark rail on the left with the eye, the next task and the plan tape; the Home timeline on the right.
The Ishoo window, working on its own project.

NoteIshoo does not include an AI model, and it doesn’t talk to one. You bring your own coding agent and AI plan. Ishoo is the structured project environment that agent works through.

Everything Ishoo does

Ishoo’s features are a Home timeline, the eye, a plan tape, named plans with priorities, tasks with required scope and results, comments, decision records, people and ownership, checked landings with safe undo, backup, sync and export, and 34 MCP tools for coding agents.

Every chapter of this manual, and what it covers. Each chapter starts with how to use the feature and ends with how it works underneath.

Getting started

Getting started

Getting started with Ishoo takes five steps: check you have what it needs, install it, add your project, connect your coding agent, and ask the agent to make a first small plan. Each step has its own page in this chapter.

  1. Check what you need

    A supported computer, a coding agent that can use MCP tools, and a project folder.

  2. Install Ishoo

    One installer sets up everything.

  3. Add your project

    Point Ishoo at the folder.

  4. Connect your agent

    Ask it to check that it can see the Ishoo tools.

  5. Make your first plan

    Describe what you want; the agent writes a small plan for you to read.

Before you start

Ishoo needs a Windows x64 or Debian/Ubuntu x64 computer, a coding agent that supports MCP tools (Claude Code or Codex) installed and working, and a project folder. Ishoo uses Git underneath, and the installer checks for it.

  • Not complete: A Windows x64 or Debian/Ubuntu x64 computer. There is no macOS build yet.
  • Not complete: Claude Code or Codex installed and working. A regular chat in a web browser is not the same thing: the agent has to be able to work with files on your computer.
  • Not complete: A project folder: an existing project, or an empty folder for a new idea.
  • Not complete: Your own AI plan or API access. Ishoo doesn’t include one.
Why does Ishoo need Git?

Ishoo keeps its records inside your project’s Git repository, on a separate ref (refs/ishoo/store) so your branches stay clean. Git also gives every task its own isolated worktree. If the folder isn’t a Git repository yet, Ishoo’s setup screen makes it one.

Install Ishoo

Ishoo installs from one download: a Windows installer or a Debian/Ubuntu package. The installer puts ishoo on your PATH, starts its background service and connects Claude Code and Codex. Ishoo is not available to download yet; installers open at launch.

WarningIshoo is private beta: request an invite on ishoo.app; checkout is not open yet. The steps below describe the launch build. Email [email protected] to be told once, when it’s ready.

  1. Download the installer for your computer

    A .exe for Windows or a .deb for Debian and Ubuntu. One file installs everything.

  2. Run it

    The installer places the ishoo program, puts it on your PATH, installs the small background service your agent talks to, and checks that it answers.

  3. Open Ishoo

    From the Start menu or your app grid. On first launch Ishoo checks this machine’s setup, finishes anything missing, and tells you in one sentence what it did.

  4. Restart your agent

    If Claude Code or Codex was already open, restart it so it picks up the new tools.

Ishoo never removes or switches off anything you already rely on. If your agent already has other tools set up, they stay as they were; Ishoo only adds its own entry.

How updates work

An update never asks you to close Ishoo or your agent first. The new version is put in place beside the running one, and the next start uses it.

Ishoo is set up for your whole account

Setup registers Ishoo once for your user account, in ~/.claude.json for Claude Code and ~/.codex/config.toml for Codex. So Ishoo’s tools show up in every Claude Code and Codex window on this computer, even in projects that don’t use Ishoo. There they sit unused and change nothing. To remove that registration, run ishoo enable --user --remove.

Add your project

You add a project in Ishoo by clicking the project name next to the wordmark, choosing All projects, then Add project and picking the folder. Ishoo opens an existing Ishoo project directly or walks you through setting up a new one.

  1. Open the project switcher

    Click the project name beside the Ishoo. wordmark at the top of the rail, then All projects….

  2. Add project

    Pick the folder. If it already has Ishoo records, it opens straight away. If not, Ishoo shows a short setup screen.

  3. Work in the same folder

    Start your coding agent in that same folder. Ishoo and the agent have to be looking at the same project.

Your agent reaches Ishoo through a small background service Ishoo keeps running on this computer. Setup registers that service with Claude Code and Codex for you, so you don’t need to edit any config files.

If setup asks a question you don’t understand

Stop and ask your agent to explain it before you continue. Setup can involve Git decisions, such as which remote to back up to, and a guess is worse than a question.

Connect your agent

You check the connection by asking your agent, in the project folder, whether it can access the Ishoo tools. A connected agent sees tools named ishoo_status, ishoo_plan and so on. The rail footer in the app also says whether agents are configured.

Ask your agent:

Can you access the Ishoo tools for this project? Call ishoo_status and tell me what it says before making any changes.

A connected agent calls ishoo_status and reports the project, its active plan and a suggested next step. When it connects, it also receives Ishoo’s working rules automatically and can re-read them with ishoo_brief.

WarningIf the agent can’t see the tools, stop there. Don’t let it invent its own task list in a file or claim to use Ishoo without the tools: that’s exactly the drift Ishoo exists to prevent. Restart the agent, check the rail footer in Ishoo, and see Troubleshooting.

What Ishoo writes to connect your agent

Ishoo registers its background service once for your whole user account (~/.claude.json and ~/.codex/config.toml), so its tools appear in every Claude Code and Codex window on this computer, even in projects that don’t use Ishoo, where they do nothing. ishoo enable --user --remove takes that registration out. When you add or enable a project, Ishoo also writes a few project files (agent instructions in CLAUDE.md and AGENTS.md, and project settings for Claude Code and Codex). It edits only its own marked block inside each one, never the rest of the file, and it rewrites that block on the next enable, so don’t hand-edit it.

Keeping CLAUDE.md exactly as it is

If your project protects CLAUDE.md (for example a hook that blocks edits, or a size budget), run ishoo enable --keep-claude-md once. Ishoo saves that choice with the project and, on every later enable, never writes, backs up or replaces CLAUDE.md, even to remove an old Ishoo block. Claude Code gets Ishoo’s instructions from a session-start hook in .claude/settings.local.json instead, and your own hooks there are kept. AGENTS.md is still managed. ishoo enable --manage-claude-md switches back.

Using a different MCP agent

Ishoo is an MCP server that runs as a background service on this computer. Claude Code and Codex are configured for you and are the agents Ishoo is tested with. Another agent that can connect to an MCP server over HTTP may work, but it hasn’t been tested.

Make your first plan

You start by asking your connected agent to use Ishoo to make a small plan, then explaining your idea in your own words. The agent files the plan and its tasks in Ishoo; you read them under Your plan and ask for changes before it starts.

Tell your agent:

Use Ishoo to make a small plan for my project. Ask me what I want to create. Show me the plan before you start, and give it a clear stopping point.

Then describe the idea however it comes out. Ask for the smallest version you could actually try: one page, one feature, one screen.

  1. Read the plan

    Open Your plan. Each plan has an outcome and an ordered list of tasks.

  2. Open a task

    Every task carries a scope: the concrete change, where it happens, the proof that it’s done, and what’s out of scope. If a task is vague, too big, or unnecessary, say so.

  3. Say go

    When the plan looks right, tell the agent to start. The eye switches to Working.

NoteA short plan you’ll finish beats a long one you won’t. You can always ask for the next plan.

Coming back later

You pick up by opening Ishoo to read Home and the rail, then starting a new conversation in the same folder and asking the agent to read the Ishoo plan and decisions and tell you where things stand before it changes anything.

Read this project’s Ishoo plan and decisions. Tell me where we left off and what comes next before you make changes.

The record lives in the project, not in one conversation’s memory, so it works just as well tomorrow, next month, or with a different agent.

A second computer

To use an Ishoo project on a second computer, install Ishoo there, clone the project, and run ishoo enable in the clone. Enable brings in the project’s records from the remote and sets up this computer’s agent connection. ishoo status then shows the same tasks and plans.

  1. Install Ishoo

    Use the installer on the second computer, the same as the first.

  2. Clone the project

    git clone <your remote>, as you normally would. A plain clone does not bring Ishoo’s records yet; that is fine.

  3. Run ishoo enable in the clone

    It fetches the records from the remote (they travel on refs/ishoo/store), writes this computer’s agent settings and hooks, and keeps the project’s saved choice about CLAUDE.md.

  4. Check it

    Run ishoo status in the clone: it shows the same active plan and tasks as the first computer. Then add the folder in the app with Add project, and start your agent in that folder.

Shared through the remoteSet up on each computer
Tasks, decisions, plans, people, comments, the north starAgent settings and hooks, the background service, where a moved records folder lives, and how checks run
If enable says it cannot reach the remote

Ishoo will not start a fresh, empty set of records over a remote it could not read, because that would hide the real ones. Fix the Git sign-in or network problem, then run ishoo enable again.

The window

The window

The Ishoo window has a dark rail on the left and three tabs on the right. The rail holds the eye, the task in focus, and Plan and People tabs. The tabs are Home (the timeline), Your plan and Decisions. A backup chip sits at the top right.

PartWhat it answers
The eye (top of the rail)Are you needed right now, and which task is in focus?
Plan tab (rail)How far the plan is, task by task: the plan tape.
People tab (rail)Who works on this project.
HomeWhat happened, newest first: the timeline.
Your planWhat happens next, in order, across every plan.
DecisionsWhat this project has settled, and why.
Backup chip (top right)Whether your records are saved off this computer.

Click the project name beside the Ishoo. wordmark to switch projects. The Settings button in the top bar opens Settings. The rail footer says whether your agents are configured, and shows the result of the last project update.

Clicking any task, anywhere, opens it in the same place: a panel that fills the right-hand side. Back or Esc closes it.

How it works: nothing in the window is written by an AI

Every word on the rail and in the timeline comes from fixed templates filled in with facts Ishoo recorded itself: a task’s id and title, when it landed, how long it took. Nothing is summarised or guessed by a model. If a fact wasn’t recorded, it isn’t shown. The window is also built so it never jumps: opening a menu or a task never resizes the window or pushes other things out of place.

The eye

The Ishoo eye shows one of four looks. Ready: nothing needs you and the next task is waiting. Working: your agent is on a task and you can look away. Needs you: work stopped and needs a person. No plan yet: nothing is planned.

StateWhat to do
Ready (eye open)Nothing is urgent. The card shows the task in focus or the next one up; View opens it.
Working (eye open)Your agent has a task in focus. Come back later. The words underneath say what kind of work: Working, Checking (a check is running), Saving (updates are being saved) or Waiting (on a tool).
Needs you (eye wide, orange)The task in focus is blocked or has stalled. Press See what it needs and ask your agent what happened.
No plan yet (eye shut)Press the button to copy “Use Ishoo to make a small plan for my project” and paste it to your agent.

Under the state word is how long it has been true, for example “for 12m”, or what last happened, such as “UI-25 landed · 53m ago”.

The rule behind the eye: a big button only appears when you’re needed. A calm rail has nothing to press.

How it works: where the state comes from

The eye is worked out from what Ishoo itself measured, never from what an agent claims. Every change an agent makes through Ishoo’s tools leaves a short-lived activity signal, so Working fades by itself when the agent goes quiet. Needs you is set only by Ishoo, when the task in focus is blocked or nothing has moved for too long; an agent can report that it’s working, but it can’t mark itself stuck or fine.

The plan tape

The plan tape is the grid of keys under the rail’s Plan tab, one key per task in the shown plan, in order. A tick means done, a play mark means active, a lock means blocked, a dash means retired, and a blank key is still to go. Click a key to open its task.

KeyMeaning
TickDone: landed and checked.
Play markActive: an agent is working on it.
LockBlocked: it waits on another task that isn’t done.
DashRetired: declined or replaced, not done.
BlankStill to go.

Pointing at a key names it on the line underneath, with its number and title. With nothing under the pointer, that line names the active task, or the first unfinished one. An owned task shows its owner’s initials when you point at it.

Under the tape a count row totals done, active, blocked and to go, and the header shows done out of total.

The plan name above the tape is a menu (Show plan). Picking another plan only previews it; each one is marked active plan, complete or preview. To make the shown plan the one your agent works on next, press Set active.

Home: the timeline

The Ishoo Home timeline is the project’s full recorded history, newest first and grouped by day: tasks filed, started, split and landed, plans made, decisions recorded and releases. It can be filtered by kind and searched by id or title.

The Home timeline with split, plan, filed, recorded and landed events.
RowWhat it records
StartedWork began on a task.
LandedA task was finished and integrated. The row shows how long it took, from start to landing.
ReleaseA version of the project was published.
SplitA task was broken into smaller ones. Its children show as chips you can click.
FiledA new task was written.
PlanA named plan was made. Clicking it opens Your plan.
RecordedA decision was recorded.

The chips above the list filter to one kind (All, Started, Landed, Releases, Splits, Filed, Plans, Decisions). The search box matches a task id or title. Days are headed Today, Yesterday, then weekday and date.

The line beside the chips counts exactly what is shown: how many events, and how many of them landed. The timeline shows 60 rows at a time; Show more loads the next page, so a project with thousands of events stays fast.

How it works: history you can trust

Each row is built from a timestamp Ishoo recorded when the thing happened: when a task was filed, started or closed, when a decision was recorded. Rows are never reconstructed afterwards or estimated. If a time wasn’t recorded, that event simply isn’t shown, rather than being placed at a guessed moment.

Switching projects

You switch projects in Ishoo by clicking the project name beside the wordmark, choosing All projects, and clicking the project you want. Your projects lists every project on this computer. Forget removes one from the list without touching its files.

Ishoo is one app for all your projects. Your projects lists every folder you’ve added; click one to open it. Add project picks a new folder. Pointing at a project shows Forget, which removes it from the list. The project’s files and records are not deleted.

Forgetting a project that still has an Ishoo folder

If the forgotten project still has an .ishoo folder inside it, for example from an older install, Ishoo says how many files it holds, how big it is, and whether any records in it are not backed up. Move it out moves the whole folder to Ishoo’s recovered folder in its app data, where you can get it back; Leave it changes nothing. Nothing is ever deleted.

When no project is open, Ishoo opens straight to Your projects. Back returns to the project you had open.

Settings

Ishoo’s Settings shows your license, who you are on this computer, whether your records are being published and ownership changes can be confirmed, the Require code review switch, and the four export options.

SectionWhat it holds
LicenseTrial or license state, and where to paste a license code.
YouWho you are on this computer, with Change or Manage to pick or edit your person.
DurabilityWhether records are publishing normally, and whether ownership changes can be confirmed right now.
WorkflowThe Require code review switch. See Code review.
ExportEverything as a ZIP, everything as a folder, tasks only, or decisions only. See Export.

Plans

Plans

Ishoo plans are named lists of tasks with a stated outcome, such as Finish the beginner launch. Every task belongs to exactly one plan. One plan is active: it is what your agent works on next. Your plan lists every plan with its progress.

Your plan: several named plans with progress bars, one expanded to show its tasks.

A plan is a group of tasks that together reach one outcome. Every plan states that outcome as one sentence: “when this plan is done, ___ is true.” Every task in it states, in one line, why it’s needed for that outcome. A task that can’t say why belongs in a different plan.

Plans are the only way to group work in Ishoo. There are no epics, milestones or boards to keep in step.

On the Your plan tabWhat it does
A plan rowShows the name, an Active tag on the active plan, a progress bar (done, active, to go) and done out of total. Retired tasks don’t count toward the total.
Opening a rowLists its tasks in order, each with its state and priority. Long plans show the first few; View all shows the rest. Opening a plan also shows it on the rail’s tape.
SearchMatches a plan name, task id or title, and opens every plan with a match.
FiltersStatus (Active, Backlog, Done, Retired), Tier (Urgent to Shelved, or None), ID prefix and Label. Clear all resets them.
Completed plansFinished plans stay listed below, so the history reads end to end.

Ask your agent to make, rename, reorder or archive plans. Backlog is the plan tasks fall back to when nothing better fits, but a new task always has to name a plan when it’s filed.

How it works: keeping plans small

When a plan has more than 12 open tasks, Ishoo tells the agent it’s getting big and suggests splitting or trimming it. Plans that are stale, duplicated, empty or finished can be archived to keep the list honest; a plan with tasks in it is archived, never deleted, so its history stays.

Plan order

Ishoo orders a plan from its blockers: when one task has to wait for another, that link is recorded, and the plan runs in an order that respects it. A task can’t start while something it waits on is unfinished. Otherwise the order is a suggestion.

Every task says what it waits on (or explicitly that it waits on nothing). Ishoo turns those links into the plan’s order, so the order can’t drift away from reality the way a hand-sorted list does.

A blocked task shows a lock on the plan tape and counts as blocked. When the task it waits on lands, it unlocks by itself.

How it works: the only hard rule

Ishoo enforces exactly one ordering rule: a task can’t be started while a task it depends on isn’t done. Everything else about order is advice. The suggested next task is the front of the active plan, but an agent can pick a different ready task if it says why.

Priority levels

Ishoo has five priority levels. Urgent: the cost grows while it waits, so it goes first across all plans. Important: high value, but waiting costs nothing extra. Mid: normal work. Later: deferred. Shelved: kept as knowledge, out of the queue.

LevelUse it whenEffect
UrgentLeaving it alone makes things worse over time.
ImportantIt matters a lot, but waiting doesn’t add cost.
MidOrdinary work.
LaterWorth doing, not soon.
ShelvedWorth remembering, not worth doing now.

A task can also have no level, which sits between Mid and Later. Each task has at most one level.

How it works: urgent means rising cost, not big

The test for Urgent is direction, not size: if nobody touches it, does the cost keep going up? A large but stable problem is Important, not Urgent. Keeping Urgent rare is what lets it interrupt other plans without the queue turning into noise. Tasks that block an urgent task inherit its pressure.

Tasks

Tasks

An Ishoo task holds a scope written before work starts (concrete change, main surface, proof of done, out of scope), results written after it ends, plus its status, owner, priority, labels, linked decisions, blockers, files and a comment thread.

A done task: its scope on the left, owner, decisions, files and comments on the right.

Each task has an id made of a short category and a number, like UI-12 or FIX-03, and one of four statuses: Backlog (not started), Active (being worked on), Done (landed), or Retired (declined or replaced).

In the task panelWhat it shows
ScopeThe four promises made before work started.
ResolutionWhat changed, why, how it was checked, and the handoff note.
OwnerWho owns it, with Start, Stop, Hand off and Take over.
DecisionsThe decisions that govern this work.
Depends on · linksTasks it waits on, and related tasks.
LineageThe task it was split from, or the tasks it was split into.
FilesThe source files it touches.
CommentsThe latest comment and a button to open the thread.

Your agent writes tasks. You can change one yourself with Edit: title, category, status, priority, owner, labels, governing decisions and the four scope fields. The form won’t save without a title, a category, all four scope fields and at least one governing decision. Delete is in the same form.

How it works: labels

Labels are optional, up to five per task, from a fixed list (such as ux, fix, docs, safety). An unknown label is removed with a warning instead of blocking the task, so a typo never stops work.

Scope: before work starts

An Ishoo task must state four things before work starts: the concrete change, the main surface where it happens, the proof that it’s done, and what’s out of scope. It must also name its plan, why it fits that plan, its governing decisions and its blockers.

FieldWhat it pins down
Concrete changeThe one change being made, in plain terms.
Main surfaceWhere a person will see it: the screen, command or page.
Proof of doneWhat will show it works, through that surface. Not “the code compiles”.
Out of scopeWhat this task will not do, so it can’t quietly grow.

Read Proof of done before your agent starts. It’s the promise you’ll hold the finished work to.

How it works: enforced, not suggested

Filing a task without any of these is refused by the tool itself, not just discouraged. The agent must also say which plan the task is in and why it fits, which decisions govern it (or explicitly none), and what it waits on (or explicitly nothing). If one change and one surface can’t be named, the task is too big and gets split.

Results: after work ends

An Ishoo task records four things when work finishes: what changed, why, how it was verified, and a handoff note for whoever comes next. A task cannot land until all four are written, and they must answer the scope written at the start.

FieldWhat it records
What changedThe actual change, file by file where it matters.
WhyThe reason, so nobody has to guess later.
VerificationThe commands or checks that were run and what they showed.
HandoffWhat’s left, what to watch, and what comes next.

When a task lands, these four fields also become the description of the change in your project’s history, so the record and the code say the same thing.

How it works: honest verification

Agents are told to say “built, not tested” when that’s all they did, and never to claim something works without having seen it work. An optional review line can record who reviewed the change and what they found; it’s kept for the record but never blocks landing.

Comments

Every Ishoo task has a comment thread. Open a task and press Add a comment or Open thread. You and your agent can add, edit and delete comments; each shows its author’s initials and the date.

The task panel shows how many comments there are and the latest one. The thread opens in place of the task; Back returns to it. Hover a comment to Edit or Delete it.

Comments are a good place for things that aren’t part of the scope: a question for the agent, a note for later, a link to where something was discussed.

Splitting big tasks

Ishoo splits a big task into smaller child tasks and keeps the link between them. The parent shows its children under Lineage, each child shows which task it was split from, and the timeline records one Split event with the children as chips.

A task gets split when it’s too big to land in one go, often because the change-size limit blocked it. Each child is a full task with its own scope, and the parent stays open as an umbrella.

When every child is done, the parent shows Ready to resolve: its results can be written and it can be closed.

How it works: a real parent–child link

A split is recorded as its own kind of relationship, separate from “depends on” and “related”. That’s what lets Ishoo show one Split event instead of many unrelated Filed rows, and know when an umbrella task is finished.

Retiring ideas

Ishoo retires a task it won’t do instead of deleting it. Declined keeps the idea with the reason it was rejected; superseded points to the task that replaced it; shelved keeps it as knowledge out of the queue. All stay searchable.

Way to retireWhen
DeclineThe idea was rejected. A reason is required and shown on the task.
SupersedeAnother task replaces it. The task shows replaced by with a link.
ShelveWorth remembering, not worth doing now.
DeleteOnly for true mistakes, such as a duplicate typed by accident. A done task can’t be deleted without forcing it.

Retired tasks show as a dash on the plan tape and as Retired in filters. They leave the queue but not the record, so nobody proposes the same rejected idea again without seeing why it was dropped.

Decisions

Ishoo decisions are recorded choices about the project, such as how data is stored or what the product will never do, with the problem, the rule, its consequences and the alternatives rejected. Accepted decisions govern future work; superseded ones stay readable.

An accepted decision: the decision, then its rationale: problem, rule, consequences, alternatives rejected.
PartWhat it holds
DecisionThe rule itself, in one sentence.
ProblemWhat forced the choice.
RuleExactly what must and must not happen.
ConsequencesWhat this costs and what it makes easier.
Alternatives rejectedWhat else was considered, and why not.
Operational impactWhat changes day to day.

A decision is Proposed, Accepted or Superseded. The Decisions tab shows Accepted ones by default; switch to Superseded or All, filter by label, or search.

When you settle something in conversation, ask your agent to record it as a decision. Not everything deserves one: a decision is for a choice that governs future work, has a reason that isn’t obvious, and would be costly to undo. Smaller reasons belong in a task’s results.

How it works: decisions reach the agent

Every task names the decisions that govern it, and filing a task requires naming them (or saying none apply). When an agent starts or opens a task, the governing decisions come with it, and the agent is told not to contradict an accepted one. Wording can be edited; changing what a decision means requires a new decision that supersedes the old one, so the reasoning chain is never lost. A link to a superseded decision follows the chain to its replacement.

People

People

Ishoo keeps a list of the people who work on a project, each with a name, title, short bio and photo. The rail’s People tab shows everyone; Manage registers you or edits your own entry. Each computer remembers which person you are.

Open the rail’s People tab to see People on this project. Manage opens your own entry: Register yourself the first time, then Save to change your name, title, short id, bio or photo. You can only edit yourself; other people manage their own entries.

Which person you are is remembered per computer and isn’t shared. On a new machine, choose yourself with Use on this machine. If you start work before choosing, Ishoo asks Who are you?.

How it works: zero setup when you’re alone

Working alone, you never have to set anything up: you’re created automatically the first time you start work. A choice is only required at the point where it matters, when ownership of a task has to be confirmed on a shared project. Duplicate entries for the same person can be merged.

Ownership and handoff

Each Ishoo task being worked on has one owner, recorded on the task, which lasts across restarts until the owner stops, hands it off, or finishes it. The task panel shows the owner with Start, Stop, Hand off and Take over.

ButtonWhat it does
StartTake ownership and set up the task’s private workspace.
StopLet go of the task. Unfinished work is saved first, never thrown away.
Hand offGive the task to another registered person.
Take overTake a task from its current owner. Their work is kept.

Owners’ initials show on the plan tape when you point at an owned task, so you can see who’s on what.

How it works: ownership is a recorded fact

Ownership is written on the task itself with a counter that goes up on every change of hands, so two people or two agents can’t both think they own it. On a shared project a change of owner is confirmed against the shared copy first; Settings shows whether that’s possible right now. Having a workspace for a task never makes you its owner: only the recorded owner is.

How work lands

How work lands

Ishoo marks a task done only when it lands: the agent freezes one exact version of the change, the task’s checks are recorded against that exact version, and it is integrated into your main branch. Until then the task stays open where you can see it.

  1. Start

    The agent takes ownership of the task. Ishoo gives it a private workspace, so unfinished work never touches your main branch.

  2. Work

    The agent changes code in its workspace. The eye says Working.

  3. Write the results

    What changed, why, how it was checked, and the handoff.

  4. Verify

    Checks run against the exact candidate. Required checks must pass, advisory ones are reported, and invariant checks can never be waived.

  5. Submit or land

    Direct landing is the default. In pull-request mode, Ishoo submits the verified candidate and the task stays active, awaiting review. Only a confirmed merge into the integration branch makes it done and releases its workspace.

In pull-request mode, done returns SUBMITTED. If GitHub CLI is signed in, Ishoo opens the PR. Otherwise use the supplied compare link, title and body and click GitHub Create pull request. Home and task detail show the PR link and recorded submission state. Poll status for merge, closure or changes requested; make requested changes in the retained workspace, verify a fresh candidate and submit again.

A confirmed merge records exact_tree=true when the landed tree matches the verified candidate. exact_tree=false means the task landed with a different tree; candidate checks do not certify that tree. Closed without merge and changes requested remain active and need attention. Ishoo never force-pushes or bypasses branch protection.

NoteDone isn’t a guarantee that everything is right. It means the promised checks passed. Try what your agent made, and tell it what needs to change.

Private workspaces and Git

Ishoo gives each task its own Git worktree and branch, so unfinished work never touches main. Landing turns the finished work into one commit described from the task’s results and pushes it, or submits it as a pull request and waits for a proven merge. Stopping a task saves its unfinished work first.

In plain terms: every task gets its own separate copy of your project to work in. Your main code only changes when a task lands, and then all at once, as one clean change you can read.

MomentWhat Ishoo does in Git
StartCreates a worktree for the task under .ishoo/worktrees/<id> on its own branch.
LandDirect mode fast-forwards the checked candidate and pushes. Pull-request mode submits it, retains the task workspace and ownership, and marks done only after proving the merge reached the integration branch.
Main moved onIf someone else landed first, the agent brings its work up to date and the checks run again on the new version. Ishoo never lands a version it didn’t check.
StopSaves any unfinished changes as a commit on the task’s branch before removing the worktree.
CrashLeftover worktrees with no owner are cleaned up later; branches with unmerged work are kept.
Parallel landings

Direct-mode tasks in one repository checkout take turns for final checks and landing. The agent is told who holds the turn and whether to wait or bring its own branch up to date. Ishoo never rebases it automatically. An idle turn expires after two minutes; running checks and a short completion grace protect active work. Stopping or handing off the task releases its old reservation. Separate clones and outside Git changes can still move main, so exact-version checks and safe refusal remain in force.

Who does what

Ishoo owns its own records completely. Your code is different: when a Git choice involves a real tradeoff, such as how to combine diverged work, Ishoo stops and asks, with the options and the exact steps for each, and your agent carries out the one you pick. Ishoo never force-pushes, and every change to Git goes through one careful path that never destroys work.

Your Git login is your own

Ishoo uses the Git already installed on your computer for everything that talks to a remote, so your existing sign-in, SSH keys and credential helpers just work. Ishoo stores no passwords.

What stops a landing

Uncommitted changes in your main folder block a landing, so nothing gets mixed in by accident. So do missing scope or results, failed required checks, and a change that’s too big.

Work outside the project

A task whose real change is outside the project folder, such as a desktop launcher or a system setting, still finishes with Done. When no project file changed, Done closes the task with no commit and no leftover branch. The task’s results record what changed outside and how to undo it.

  1. Start the task as usual

    The agent still gets a task folder, even if it will not change anything in it.

  2. Make the outside change

    For example, a launcher file in ~/.local/share/applications/ or a shortcut on the desktop.

  3. Write it down in the results

    Under What changed: each outside path, what it was before and after, and the exact steps to undo it. This is the only record, because Ishoo does not track files outside the project.

  4. Done

    With nothing changed in the project, Done says the task closed with no file changes. Main gets no commit and no ishoo/<id> branch is left behind.

Make a desktop launcher for this app. It lives outside the project, so put its path, its full contents and how to remove it in the task’s results.

When the change should be repeatable

If you will want the same change on another computer, have the agent also save a small script or note in the project that makes it (for example scripts/install-launcher.sh). Then Done makes one normal commit with that file, and the outside change can be redone from it.

Proof of done

Ishoo checks work by freezing the exact version that would land and requiring check results recorded against that version. Checks are invariant (never waivable), required (must pass, or be waived by a person) or advisory (reported only). Any change afterwards means checking again.

Check classRule
InvariantMust pass. Can never be waived.
RequiredMust pass, unless a person approves a waiver for that one failed check on that exact version.
AdvisoryReported, never blocks.

Your agent chooses the checks for a task (for example: the tests, the linter, the site build), runs them, and records each result with the command and what it printed.

How it works: tied to the exact version

When the agent asks to land, Ishoo freezes one exact commit and its file tree. Every result is recorded against that pair. If anything changes afterwards, even one character, the old results no longer count and the checks have to run again. Ishoo itself never runs your builds or tests: your agent runs them in its own shell, and Ishoo holds the evidence. Blanket “skip all checks” waivers don’t exist.

The change-size limit

Ishoo blocks a change that touches too much at once: by default, five or more parts of the project or eight or more source files. Three parts or five files lands with a warning. A blocked task is split into smaller tasks, each landed on its own.

Big changes are where agents make the mistakes nobody notices. Keeping each landing small keeps each one reviewable and easy to undo.

Size of changeResult
Under 3 parts and under 5 filesLands normally.
3–4 parts or 5–7 filesLands, with a warning to consider splitting.
5+ parts or 8+ filesBlocked. Split the task and land the pieces.

A project can set this check to Require (the default), Warn (measure and advise, never block) or Off.

How it works: what counts

Only source files count, in any language. Tests, generated files and documentation don’t, so writing tests never pushes a change over the limit. The size is measured between where the task started and its finished workspace, never against a main branch that has moved on since, so other people’s work never counts against yours.

Code review

Ishoo can ask your agent to get an independent code review before landing: a second, fresh context reads the change. The Require code review switch is in Settings, under Workflow. It is off by default because it costs noticeably more to run.

With Require code review on, your agent is told to have a separate, fresh context review its change before landing. That catches more mistakes, at the cost of more usage on your AI plan.

With it off, Ishoo says nothing about review at all. Either way, the review is recorded as advice, not as a check that can block a landing.

Undoing a landing

You undo a landed Ishoo task by asking your agent to preview a restore of it. The preview shows exactly which files would change. Applying it adds one new commit that returns the project to that point; history is kept and nothing is force-pushed.

Preview restoring the project to before UI-25 landed. Show me what would change before you apply it.

  1. Preview

    Ishoo shows the target version, the files that would change, and the tasks that would reopen. Nothing is changed.

  2. Apply

    Only after you confirm. Ishoo adds one new commit whose files match the chosen point, on top of everything else.

How it works: forward, never backward

A restore never rewrites history or deletes commits. It records a new commit that puts the old files back, so the undo itself can be undone. Tasks whose work is undone are reopened. Apply is fenced to the exact state the preview saw: if anything changed in between, it refuses and asks for a fresh preview. An agent never starts a restore on its own; a person has to ask.

Your data

Your data

Ishoo stores its records inside your project’s Git repository on your computer, with no Ishoo account or server. If the project has a Git remote, Ishoo publishes its history there too, so anyone with access to that repository can read it.

WarningLocal doesn’t always mean private. If your project pushes to GitHub or another remote, your tasks, comments and decisions go there too, unencrypted. Keep secrets, passwords and API keys out of them, and check who can see the repository.

QuestionAnswer
Where is it kept?In the project folder, with history on the Git ref refs/ishoo/store.
Is there an account?No. Ishoo runs on your computer.
Which remotes work?Any plain Git remote that accepts custom refs: GitHub, GitLab, Gitea/Forgejo, self-hosted.
Can I take it with me?Yes. Settings → Export writes a ZIP, a folder, or Markdown of your tasks and decisions.
What about my AI provider?Unchanged. What you send your agent is covered by its own terms.

Where records live

Ishoo keeps one small file per task, decision and person under .ishoo/records in your project. That folder is ignored by your main branch; its history is saved on a separate Git ref, refs/ishoo/store, so your code history never fills up with record changes.

In plain terms: your records live in your project, but out of your code’s way. git log on your code shows only code changes, while every change to a task or decision is still saved with full history.

One file per record

Each task, decision and person is its own file, and a save writes only the records that changed. Two people editing different tasks never collide. If the same record changed in two places at once, Ishoo stops and shows the conflict instead of silently keeping one side.

One careful writer

A small background service on your computer is the single writer for a project’s records, so the app and several agents can all make changes at the same time without corrupting anything. Worktrees never get their own copy: there is one store per project, in the main folder.

Backup and sync

Ishoo publishes your records to your project’s Git remote in the background as they change. The chip at the top right shows the state, such as Up to date or Not backed up; clicking it shows details, a button to check for or bring in updates, and a one-file backup.

ChipMeaning
Up to dateThis computer has the latest project files and records, and they’re saved elsewhere.
Backing upSaving your records so another computer can see them.
Not backed upRecords are only confirmed on this computer.
Checking backupIshoo hasn’t checked recently whether records are saved elsewhere.
Issue updates availableAnother computer has newer records. Update to bring them here.
Backup retrying / Backup stuckPublishing failed and Ishoo keeps trying. Stuck means it has failed several times in a row.
Issues need helpThe same record changed in two places. Ask your agent to combine them.

Click the chip for the details: when each part was last published, and one button. Catch up now brings in newer work when that’s safe; Check for updates checks the remote. When catching up needs a Git decision, the button is greyed out and Ishoo gives you a message to copy to your agent instead.

Back up project to a file… writes the whole project, code history and records together, to one file wherever you choose. It can rebuild a working project in a new, empty folder.

How it works: backed up means confirmed

“Up to date” is only shown after Ishoo has confirmed the remote actually holds your latest records, not just that a push was attempted. Code and records are checked together. A failed publish is retried in the background and never loses the local copy.

Export

You export from Settings → Export: everything as one ZIP, everything as a folder of readable files, all tasks as one Markdown file, or all decisions as one Markdown file. Export keeps working after a trial ends, so your records are never locked away.

OptionWhat you get
Everything, ZIPOne portable .zip of all your records as readable Markdown.
Everything, folderThe same, as a folder of readable files.
Issues onlyEvery task in one .md file.
Decisions onlyEvery decision in one .md file.

For your agent

For your agent

Ishoo gives AI coding agents 34 MCP tools for plans, tasks, decisions, checks, landing and undo, sends them its working rules when they connect, tells them the next step and why, and refuses actions that skip a required step.

Everything an agent does in Ishoo goes through typed tools, never through editing files or scraping text. That’s what makes the record trustworthy: the tools check each step, and the agent can’t skip them.

How it works: one background service

The installer starts a small service on your computer that agents connect to over a local address that only this computer can reach. One service serves every project; each request names the project it’s about. Because it keeps running, a restarted agent reconnects instantly, and the app and several agents can work at once.

The rules agents get

Ishoo sends a connecting agent its working rules automatically, and the agent can re-read them any time with ishoo_brief. The rules cover how to pick work, the scope and results every task needs, how to verify, and how to land.

  • Use Ishoo’s tools for all task, plan and decision work. If they’re missing, stop and ask; never fall back to a homemade to-do file.
  • Read the decisions that govern a task before changing code, and don’t contradict an accepted one.
  • Work on one task at a time, from its own workspace.
  • Test the real thing and report the command, what it printed and the exit code. Say “built, not tested” when that’s the truth.
  • When a Git choice has a real tradeoff, pass Ishoo’s question to the person unchanged and do only the option they pick.

The next step, with a reason

An agent calls ishoo_status to learn what it’s working on, which decisions apply, whether scope and results are complete, the backup state, and a suggested next step with its reason. Your request always comes first; the suggestion is advice.

The suggestion follows fixed rules: an urgent task first, then the front of the active plan, never a blocked task. If the agent picks something else, it’s told to say why.

To compare work across plans, an agent can ask for a short list of candidates matching a theme, such as “safety” or “first launch”. That search matches meaning, not just words, and leaves out blocked tasks.

Guard rails

Ishoo refuses the step itself: a task can’t be filed without its scope, started while blocked, or landed with missing results, failed required checks, uncommitted changes or an oversized change. Each refusal says exactly what’s missing.

Ishoo relies on gates, not promises. Asking an agent to be careful is not enough; the tool refuses until the step is done, and tells the agent precisely what to fix.

If an agent tries to commit or push directly on a task it doesn’t own, bypassing Ishoo, a guard blocks it and the status shows an alert. The way out is always to go back through Ishoo’s steps.

How it works: every gate has a control

A gate only ships with a way for a person to adjust it, such as the change-size mode or a waiver for one failed required check. Nothing blocks you with no way through.

All 34 tools

Ishoo provides 34 MCP tools: orientation (status, brief, show, list, candidates), tasks (new, edit, resolve, comment, split, retire), plans, decisions, the work lifecycle (start, stop, handoff, done, hotfix), verification, undo, people, projects, license and maintenance.

GroupTools
Orientishoo_status, ishoo_brief, ishoo_show, ishoo_list, ishoo_candidates
Write tasksishoo_new, ishoo_edit, ishoo_resolve, ishoo_comment, ishoo_decompose, ishoo_rename_id
Retire tasksishoo_retire (why: shelved, declined, superseded, erase)
Plans and decisionsishoo_plan, ishoo_decision
Do the workishoo_set_active, ishoo_start, ishoo_stop, ishoo_handoff, ishoo_done, ishoo_hotfix
Prove and undoishoo_verification, ishoo_version_assess, ishoo_restore
People and projectsishoo_people_whoami, ishoo_people_use, ishoo_project
Otherishoo_license, ishoo_hero_signal, ishoo_admin

Tools that cover a whole area, such as ishoo_plan or ishoo_decision, take an operation name (op), so there are few tools to learn but nothing is missing.

Advanced

Advanced

Ishoo’s advanced features are linked projects for work that spans several repositories, versions and releases, quick fixes that skip the full task steps for tiny changes, maintenance tools that diagnose and repair a project, and the full command-line reference.

You won’t need these on day one. They’re here for bigger projects, teams, and the rare day something goes wrong.

Linked projects

Ishoo can link a project to up to 10 related projects, such as a library your app depends on. Plans can then include tasks from a linked project, and agents can find every Ishoo project on the computer. Each project’s work still lands through its own tasks.

Linking is for coordination, not for managing a portfolio. A link records a short key, a readable label, and where the other project lives on this computer. Ask your agent to link, relink (when the folder moved) or unlink a project.

When one change needs work in two repositories, the agent splits it into one task per repository, and each goes through that repository’s own start-to-land steps.

How it works: shared list, local paths

The list of linked projects is shared with everyone through the project’s records. Where each one lives on disk is kept per computer, so a teammate with different folders just relinks. A link can also name the other project’s Git remote, using your existing Git sign-in.

Versions and releases

Ishoo can read your project’s version from a file you choose and show it in the top bar. Each task then records whether it is a patch, minor or major change. The version itself only changes when you deliberately release, and each release appears on the timeline.

Most projects don’t need this. Once a version file is set up (for example Cargo.toml or package.json), the current version shows in the top bar on every view.

ImpactMeans
noneNothing a user of the project would notice.
patchA fix; nothing new, nothing broken.
minorSomething new that doesn’t break anything.
majorSomething that breaks how people use it today.
How it works: releases are deliberate

In a versioned project a task can’t land until the agent records its impact, with at least one fact naming what changed for anything above none. Landing never bumps the version by itself. A release is a separate, explicit step that writes the new number to the version file, and it shows on the timeline as a Release row.

Quick fixes

Ishoo has a quick-fix path for tiny changes, called hotfix: the agent names the exact files it changed, and Ishoo commits them, pushes, and files a finished task labeled hotfix in one step. Any other changed file blocks it.

Use it for a typo, a one-line fix, a wrong colour: things where writing a full scope would take longer than the fix. It still leaves a record, a done task labeled hotfix, so nothing changes silently.

How it works: fast, but watched

A hotfix commits only the files it lists, straight from your main folder, with no private workspace and no size check. Because that skips safety steps, Ishoo notices when quick fixes come often or several in a row, and tells the agent, so it doesn’t become the normal way of working.

Maintenance

Ishoo’s maintenance tools are run by your agent: doctor diagnoses and can repair the project’s records, lint checks them for problems, preflight shows whether a task is ready to land, cleanup removes leftovers from crashed sessions, and take over moves a task from an absent owner.

ToolWhat it does
DoctorFinds problems in the records that normal use can’t reach, and repairs them when asked.
LintChecks records for broken links, missing fields and inconsistencies.
PreflightA readiness card for one task: what would block it from landing.
CleanupRemoves workspaces left behind by crashed sessions. Work that isn’t merged is kept.
Take overMoves a task from its owner to you, with a record of it. Their work is kept.
InventoryLists the labels, files and task links in use.

Ask your agent, for example: “Run Ishoo’s doctor on this project and tell me what it finds before fixing anything.”

From a terminal, ishoo backup create writes a one-file backup of the whole project and ishoo backup restore rebuilds it in a new folder, the same as the button on the backup chip.

Command-line reference

The ishoo command line mirrors the app and the agent tools: setup, tasks, plans, decisions, the work steps from start to done, people, linked projects, versions, backup and maintenance. Agents use the MCP tools instead; the command line is for people and scripts.

Every command below is listed from Ishoo’s own code, so this page can’t fall out of date without a test failing. Run ishoo <command> --help for the full options.

Setup and the appWhat it does
ishoo initInitialize a new issue tracker by creating the canonical sharded store under .ishoo/records/ in the target directory (gitignored on main; its history rides the refs/ishoo/store sidecar ref).
ishoo enableBy default, first reconcile Ishoo in user/global host configuration, then materialize this repo's optional host-adapter files: .mcp.json, .codex/config.toml, .claude/settings.local.json, .cl…
ishoo setup—
ishoo serveserve the universal hub over loopback HTTP, so agent hosts connect to a URL instead of spawning a child whose lifetime they own.
ishoo mcpServe ishoo as an MCP (Model Context Protocol) server over stdio.
ishoo reinstallDeveloper reinstall that never requires killing running ishoo processes.
ishoo migrate-storesConvert this project's store — or, with --all, every project in your Library — to the additive-safe v3 shard format, so future Ishoo upgrades can add fields without ever bricking the store (the FIX-12…
ishoo licenseShow or activate the offline Ishoo license
ishoo license statusShow the offline trial or license state for this machine
ishoo license activateVerify and save a purchased offline license code
TasksWhat it does
ishoo newCreate a new issue.
ishoo listList issues matching a query.
ishoo showShow one issue in full detail.
ishoo editEdit one issue.
ishoo setSet the status of an issue.
ishoo decomposeSplit a parent issue into a focused child, recording the typed parent-child decomposition lineage.
ishoo declineRetire an issue as declined while preserving why it was rejected.
ishoo supersedeRetire an issue because another issue replaces it.
ishoo shelveShelve a shelved-labeled issue as retained knowledge.
ishoo deletePermanently delete an issue from the store
ishoo rename-idRename an issue ID and update all back-references.
ishoo moveMove issues to another document.
ishoo commentAdd or list comments/notes on an issue
ishoo comment addAppend a comment/note to an issue
ishoo comment listList the comment thread on an issue
ishoo comment editEdit a comment by its index (see comment list)
ishoo comment removeRemove a comment by its index (see comment list)
ishoo labelsList all labels currently used in the canonical store.
ishoo filesList all source files referenced by issues in the canonical store.
ishoo refsList issue references currently used in links and dependencies.
ishoo search-issuesConcept search over issues by meaning (synonyms/concepts), not literal words
ishoo candidatesGather the bounded next-work candidate set for a lens (concept recall ∪ safety/breaking anchor, minus blocked)
Plans and decisionsWhat it does
ishoo planInspect or mutate the live execution plan, plus the separate batch-plan generator.
ishoo plan showShow the current persisted plan
ishoo plan addAdd an issue to the plan (appends, or use --after/--before to position)
ishoo plan moveReposition an existing plan entry with --after/--before
ishoo plan removeRemove an issue from the plan
ishoo plan setReplace the plan with an explicit ordered list (accepts done ids for history)
ishoo plan clearClear the current plan
ishoo plan nextShow the next non-done plan item
ishoo plan populatePopulate the plan from local issues, optionally filtered by labels
ishoo plan generateGenerate a TOML batch plan
ishoo plan new-planCreate a new named plan and switch to it
ishoo plan listList named plans (archived hidden unless --all)
ishoo plan useSwitch the active named plan
ishoo plan deactivateSet the active plan back to Backlog (the default plan)
ishoo plan renameRename the active named plan in place (entries unchanged)
ishoo plan archiveArchive a plan: hide it from the list/dropdown but keep it
ishoo plan deleteDelete a plan only if it has zero entries
ishoo plan drop-planDelete a named plan
ishoo decisionManage decision records (Architecture Decision Records).
ishoo decision newCreate a new decision record
ishoo decision listList decision records (optionally filtered by label and/or text)
ishoo decision showShow a decision record in full detail
ishoo decision acceptMark a decision as accepted
ishoo decision supersedeMark a decision as superseded by a newer decision
ishoo decision setSet the status of a decision
ishoo decision adrPrint a decision as ADR markdown
ishoo decision draft-issuesGenerate a batch TOML issue-draft from an accepted decision record.
ishoo decision deletePermanently delete a decision record from the store
ishoo decision editUpdate one or more fields of a decision record.
Doing the workWhat it does
ishoo statusPrint the live orientation card (workspace, focus, contracts, next command)
ishoo briefPrint the agent protocol (lifecycle, contracts, and the land gates)
ishoo startTake durable ownership of an available issue and prepare its isolated execution worktree.
ishoo finishStop your work on an issue, return it to Available, and remove its disposable worktree.
ishoo handoffTransfer durable ownership of an issue you own to another registered PersonId.
ishoo doneComplete an issue by freezing, externally verifying, and integrating one exact candidate.
ishoo landMark an issue done and accepted into the main branch
ishoo hotfixCommit exactly the declared dirty tracked files from the shared integration tree, push, and file a DONE issue labeled hotfix.
ishoo restoreRestore the project to an older commit the safe way: create a NEW commit whose tree equals the target commit, on top of the current HEAD.
ishoo takeoverExplicitly take durable ownership from the current owner.
ishoo preflightPrint the mechanical readiness card for an issue before landing
ishoo verificationRecord candidate-bound external verification evidence
ishoo verification configureReplace the named invariant, required, and advisory checks for an issue
ishoo verification recordAttach one external check result to the issue's exact frozen candidate
ishoo verification required-ciShow, set or clear the repository's required GitHub CI policy (DEC-178)
ishoo verification waiveApprove one exact failed required check; invariant checks cannot be waived
People, projects and versionsWhat it does
ishoo peopleManage the people registry
ishoo people addRegister a person in the people registry
ishoo people listList registered people
ishoo people useSet the machine-local current person (not shared in the store)
ishoo people whoamiPrint the machine-local current person
ishoo people mergeMerge a duplicate person into an explicit survivor
ishoo linkRegister a folder as a linked project.
ishoo relinkUpdate the local resolution path for an existing linked project.
ishoo versionManage version configuration
ishoo version getRead the current version from the configured source
ishoo version bumpUpdate the configured version source to a target version
ishoo version set-sourceConfigure the version source file
ishoo version assessRecord or update an issue's version-impact assessment
Data and maintenanceWhat it does
ishoo backupWrite or restore a one-file project backup (code history + issue store)
ishoo backup createWrite <project>-<date>.bundle into a folder you choose
ishoo backup restoreRebuild a working project from a backup file, into a new empty folder
ishoo doctorDiagnose store durability faults that the normal mutation path cannot reach: .ishoo/ paths still tracked on main (legacy half-migrated store), plan entries pointing at absent records (dangling), and l…
ishoo gcGarbage-collect orphaned execution substrate left by a crash: remove worktrees and fully merged execution branches for issues with no durable owner.
ishoo lintCheck issue hygiene and canonical-store consistency.
ishoo resolve-storeWhen ishoo reports 'the same record changed on the remote', converge by keeping every conflicting record from one side: keep-mine retains this checkout's version, take-remote takes origin's.
ishoo applyValidate or execute a TOML plan.
ishoo batchApply a batch of mutations atomically from a TOML file or stdin.

Trial and license

Ishoo is planned at $39 USD one-time, with all v1 updates and a 14-day free trial with no account or card. The license is an offline code. Checkout is not open yet. After a trial ends, existing records stay readable and exportable.

One-time
$39USD, all v1 updates
Days free
14No account, no card
Subscriptions
0The license works offline

Settings → License shows the trial or license state and where to paste a license code. When a trial ends, Ishoo stops accepting changes until you add a license, but reading and exporting keep working, and your records are never locked away.

How it works: the license never phones home

The license code is checked on your computer. Ishoo never contacts a server to check it, so it works offline forever. If your computer’s clock looks wrong, Ishoo asks you to correct it rather than guessing.

Troubleshooting

If your agent cannot see the Ishoo tools, open the project in Ishoo and check the agent-hub status in the rail footer. Expand it for the measured reason and start command. Agent configuration is shown separately. Restart the agent after setup changes.

The agent can’t see the Ishoo tools

Restart the agent from inside the project folder. Open the project in the Ishoo app once, since adding it writes the agent’s config. The rail footer shows configuration separately from Agent hub answering. The hub check refreshes automatically and authenticates the expected build. Expand Agent hub not running for the start command, or Agent connection unknown for a credential, response or build-mismatch reason. The status check itself never starts or stops the hub.

The eye says Needs you

Open the task. Ask your agent: “What stopped on this task, and what do you need from me?” Don’t skip past a warning you don’t understand.

The backup chip isn’t Up to date

Click the chip. It says what’s wrong and when each part was last published. The usual cause is a remote that needs you to sign in again.

Ishoo can’t read a project’s records

Ishoo shows the path it tried and a Retry button. Nothing was written, so retrying is safe. If it keeps failing, ask your agent to run Ishoo’s store check (ishoo_admin with doctor), which diagnoses and can repair the store.

The agent made its own to-do file instead

Tell it: “Use the Ishoo MCP tools and follow the Ishoo protocol. If the tools aren’t available, stop and tell me.”

Getting help

You can reach the makers of Ishoo, Strange Systems, by email at [email protected]. Include your operating system, your coding agent and the exact message you see, but never passwords or API keys.