| F · pick a type | New frame: click to drop it, drag to size it, or Enter to place it next to the others |
| Double-click · U + double-click | New entity · new UDE, in empty frame space |
| Right-click | Everything you can do with what you clicked: a box, an arrow, a frame or the canvas |
| Hover a box | + handles: bottom cause, top effect, sides sibling |
| P · A · M · O | Parallel · AND · MAG · exclusive OR: dial, held while dragging, ⌥ shortcuts |
| Click / drag a side + | Sibling (the dial asks which junction). Drag to place it, or onto a box |
| Click top / bottom + | New effect above / new cause below |
| Drag top + across arrows | Picks the arrows crossed; let go in empty space, then choose the junction |
| Drag top + onto a box | Parallel arrow into that box |
| Reinforcing loop | Drag the top + of a box onto a lower box it already leads up to. It is drawn around the outside and can join an AND like any arrow |
| Tab · ⇧Tab · ⇧Enter | New cause · new effect · new sibling (dial) |
| ⌥P ⌥A ⌥M ⌥O | New sibling with that junction, no dial |
| Drag a box · ⌘-click · drag on empty | Move · add to selection · select an area |
| U · Enter · Esc | Entity↔UDE · edit or finish · cancel (Esc puts the box back as it was) |
| Click a junction | Change it |
| R · C · B | Root cause · critical root cause (CRC, light green) · boundary, on a box with nothing below it |
| % · click (33%) | Set a MAG arrow's share; the MAG always totals 100% |
| Right-click an arrow | Change arrow: point it at another box, or start it from another box (click the box; Esc cancels) · Insert a box here (cause → new box → effect) · junction · delete. On an Evaporating Cloud, right-click an injection or its arrow to change which arrow of the cloud it breaks |
| Insert box above · below | Right-click a box in a Current or Future Reality Tree: a new box between it and every box it points to (above), or every box feeding it (below). AND, MAG and OR junctions stay on the arrows it takes over; one ⌘Z undoes it |
| ⇧F10 · ↑ ↓ · Enter | The right-click menu of what is selected, from the keyboard |
| Evaporating Cloud | Click a box and type, or Tab / ⇧Tab through O, R1, R2, P1, P2. Hover an arrow for its + to add an assumption; mark it valid, invalid or not sure. An invalid one: Create injection (ideas, then the check) or Think it through on a Decision Map. Typing in a box offers boxes of the other trees to pick (Tab); ⌖ picks one on the canvas |
| Decision Map · Ideation | An objective, its options and the constraints every option must meet; Enter at the end of a line opens the next one. Ideation: double-click the board for a post-it, spark cards to get going, dots to vote; voted ideas become the map's options |
| D / I + double-click | In a Future Reality Tree: new desired effect · new injection. D, I or U on a selected box switches its kind. Right-click a root cause, an EC injection or a chosen Decision Map option: Start FRT from these |
| N | In a Future Reality Tree: flag the selected box with a ⚠ (a possible negative branch). Right-click a flagged box: Develop negative branch, a dashed region ending in an [UNDESIRABLE OUTCOME]. Right-click an arrow inside it: Trim here, which asks for its assumptions and opens the create-injection pop-up; the arrow gets a ✂ and the branch goes grey, with Fold / Unfold. Remove the trim takes its trimming injection with it; right-click a box of the branch: Remove negative branch. |
| Checks | In a Future Reality Tree: quiet counts in the frame header (desired effects not reached, UDEs without a desired effect, negative branches not trimmed, boxes that lead nowhere, future tense, EC requirements not in the tree, ⚠ flagged, not linked to an IO Map); a click selects the boxes counted. The Checks button hides only the marks the app puts on boxes ("not reached yet", the amber outline); your ⚠ and the counts always show. Nothing prints or copies. Once every desired effect is reached, "IO Map: n to check" lists the goals no UDE was measured against. |
| Loops & tools | In a Future Reality Tree: drag the + on top of a desired effect down onto a box it already leads up to, and the arrow becomes a Positive Reinforcing Loop. Once every desired effect is reached the header asks "Can a desired effect strengthen something below it?"; a loop into a box that has another separate cause gets a note asking whether you would know it is the loop that strengthens it. Trace works as in the CRT; Break Preview reads "If this fails…" (which desired effects fail); W shows the single points of failure (how many desired effects depend on each box). There is no Potential CRC and no root-cause marks here. Right-click one or more injections: Start PRT from these. |
| Prerequisite Tree (PRT) | One objective per PRT, pinned at the top (Start PRT from an injection, or F then P). Read it from the top down: in order to have the box above, we must do the step below. Tab · ⇧Tab · ⇧Enter = step below · step above · sibling; double-click = a loose step (not connected), drag its top + onto a box to connect it. Right-click a step: Insert step above / below, Delete (the chain closes up). Drag a step onto an arrow to move it there; only the dragged box moves |
| Obstacles · milestones (PRT) | Right-click a step → Add obstacle: an octagon in front of the step it blocks, not yet overcome. Right-click the obstacle → Add the step that overcomes this, or drag it onto a step below: it tucks behind that step. Click an obstacle to see what it blocks. Right-click a step → ◆ Mark as milestone: something achieved; it takes no time |
| Times (PRT) | The Times tool in the PRT's title bar: a time chip on each step (click it, type working days, Enter; empty clears it), the total ("Done in 23 working days") and the critical chain in blue, the longest chain, which sets the finish. Steps in a row add up; tracks side by side take as long as the longest. Milestones take 0 d. Estimates, not a plan: no buffers, no dates. Off = the tree as Dettmer draws it; the times are kept |
| Export ▾ (PRT) | MS Project XML (MS Project, ProjectLibre, GanttProject, OmniPlan) or CSV (Excel, Google Sheets, most planners): the steps in order with their time and what each comes after; milestones and the objective as 0-day milestones; obstacles and loose steps left out. The planner works out the dates |
| Same as… (PRT) | A step two injections both need goes in both PRTs: right-click it → Same as… → search for, or click, the same step in the other PRT. The two share their words (change either, both change). Both show a "Same as" tag; × unlinks and the words stay |
| Checks (PRT) | Quiet counts in the PRT's header, never blocking: obstacles not yet overcome, steps not connected, an obstacle worded might / may / could / risk of ("sounds like a possible risk, not an obstacle": an obstacle exists now and would stop the step). Click one to select the boxes. Trace (T) works in a PRT; Break Preview does not (it reads arrows as if–then) |
| Strategy & Tactic Tree (S&T) | Goldratt's tree, built level by level, left to right (F then S). Each step: number (worked out by itself: 1, 2.1, 3.1.1 …), an optional label in capitals, and five parts: Necessary Assumptions · Strategy · Parallel Assumptions · Tactic · Sufficiency Assumptions. Type in a step: Tab / Enter go to the next part; after the last one Tab = a step below, ⇧Enter = a step beside it, Enter = done. Double-click = a step not connected. One step above each step; drag a step under another; Delete moves its steps up, right-click → Delete branch removes them too |
| Expand · Fold · levels (S&T) | Expand all / Collapse all in the header: all five parts, or Strategy and Tactic only; the switch at the left edge of a level does it for that row. Fold: ▾ under a step hides the steps under it and shows "▸ n steps" (click to unfold; also right-click → Fold). Show down to level ▾ in the header hides every level below the one you pick, for presenting. Hidden steps stay in the tree: checks and Copy as text still count them |
| Checks (S&T) | Quiet counts in the header, never blocking: steps with only one step under it (Goldratt: a lone step under a step just rewords it), steps with assumptions not filled in (Necessary and Parallel on every step, Sufficiency on a step with steps under it), steps not connected. Click one to select the steps; folded ones open |
| Same as… (S&T) | Work that serves two branches goes in each: right-click the step → Same as… → search for, or click, the same step in the other branch (or in another S&T). The two share their Strategy and Tactic (change either, both change); each keeps its own assumptions. Both show a "Same as" tag; × unlinks and the words stay. Not on its own branch, not for Level 1. Copy as text (☰ or the frame's menu) gives the tree as an outline by number with every part named |
| Links · ← tags · × | A box made from another one, or picked from it, shows where it comes from (← CRT-A 104, ← EC-A Injection 1, ← DM-A Option 2) and shares its words: change them in any of the linked places (an idea note, the map option, the injection, the FRT box, the PRT objective) and they all change at once; ⌘Z undoes it in one step. × on a tag or a frame chip removes the link and keeps the words. One exception: a box carried into an FRT from its CRT is its future version, so rewording it there leaves the CRT as it is. When a linked frame is deleted, the tags read "(deleted)" and the words stay. |
| Click empty frame space or its title | Select the frame: lock, hide or delete it. Double-click the title to rename |
| ⌘S · ⇧⌘S · ⌘O | Save: the first time it asks where; after that it replaces that file (Chrome and Edge; Safari and phones download a copy each time) · Save as a new file · open a file. Files end in .think; Open also reads the older .tree files (saving one again makes a .think file and leaves the old one as it was). Nothing is stored in the browser |
| X · Break Preview | Toggle: hover a box to see what falls if it is no longer true; click to keep it, ⌘/Shift-click to add more |
| Right-click a frame | Mark every unmarked leaf box as a root cause in one go. Hover a root cause to see how many top UDEs fall if it breaks |
| T · Trace | Toggle: hover a box to light up everything below and above it; select a box to keep it lit |
| ⚡ Potential CRC | Toggle: the smallest group of root causes that brings down every UDE, one option at a time, with the path it falls along. Everything highlighted must be fixed together. ‹ › on the bar shows other options of the same size; Skip sets one aside to see what's next (not saved); mark it B (boundary) if it truly can't be changed |
| ☰ · Copy as text | The tree as numbered statements and If–then lines, to paste to an AI for review (right-click a frame for just that frame) |
| ⌘K · search | Find frames, boxes, numbers (old ones too). Empty search lists every frame; Enter jumps there |
| Numbers | Each box gets working numbers when it is made; they never change by themselves, even if the tree is rearranged. Each tree frame has its own hundred. Press # (Renumber) when the tree is final to put them in Dettmer's order |
| # · Wand (tree header) · ⊠ | Renumber · auto-arrange a tree from its header · clear a frame from its own toolbar (select the frame) |
| IO Map: Tab · ⌥Tab · ⇧Tab | One section down (Goal → CSF → NC; NC stays NC) · same section (a CSF that feeds a CSF) · above. Double-click in a section, or drop a +, to put a box there |
| IO Map: drag a box | It stops at the dashed line; push on and it goes through into the next section. One Goal only. An arrow that would point down is removed (⌘Z undoes) |
| Group (IO Map) | Labelled areas behind boxes, for reading only: arrows and checks ignore them. Click the Group tool in the frame's title bar and drag a rectangle: boxes whose centre is inside light up (orange if they come from another group); let go and type the group's name. A box is in one group. Drag a group's edge or corner to take boxes in or out. Drag its label to move its boxes together; each box stays in its section. Click the label to rename it; right-click a box to add it to a group or remove it, and right-click the label to ungroup |
| Statements over time (IO Map) | Outside time mode, a box's text is its general statement, true for the whole horizon. In time mode, editing a box writes its statement for the period on show (and the periods inside it), tightening the general one: a subset, a stage or a specific form, still a condition rather than a task. A box with a period statement carries a tag naming its period; point at the tag for the Statement over time, and × to remove that period's statement. While you write, what it refines is pinned above the box. Hold G to see every box's general statement; let go to come back |
| System (IO Map) | The card at the top left of every IO Map names the system the map is about. Click it to give the system a name and, if useful, its scope in one line. Its boundary is optional, behind "Boundary ▸": Sphere of control, inside Sphere of influence, inside Outside our control and influence. List only the borderline items people might disagree about; + Add, Enter to add the next, × to remove |
| Clock · Time mode (IO Map) | The clock in the IO Map's title bar turns into a slider. A map starts open-ended: one pill from this year to ∞. Drag the handle to move through time: it follows the cursor, the period under it shows straight away, and letting go away from the slider puts it back. ⌄ under the handle goes a level down (years, quarters …), ⌃ above it a level up; scrolling does the same. To change the periods, click ✎ at the right end: the slider becomes a year ruler. Point between two years and click the + on the dotted line to split there; drag a divider to move it; to remove it, point at it and click its × (or drag it off the ruler); drag ∞ onto a year to end the plan there; drag the start year left onto the greyed years for an earlier start. Click ✓ when done. The clock leaves time mode. The period's constraint is the card at the top right of the map: click it to name or change it |
| Metrics · targets | In time mode, point at a box and click the + on its bottom edge: type the Metric name, Tab, type the target, Enter. Click a name to rename it, a target to change it (a Yes / no target ticks on and off), and the icon to switch the type: ↗ Level → Σ Total → ✓ Yes / no. The × at the end of a line removes it. The box's ◎ button (or right-click) opens all of its metrics, gaps and marks; its ◂ and ▸ add the period before or after as a column, so you can see and edit their targets side by side. An empty period shows the next target that applies in grey. Tick "Gap" to mark a gap to close in that period |
| ⛓ Constraint · ◎ Exploit · ▲ Elevate | Per period: ⛓ Constraint on the slider names what limits the system (or tick it on a box that is the constraint). Point at a box for its chips: Gap (not meeting this period's standard yet), ◎ Exploit (close the gap by using the constraint better) and ▲ Elevate (close it by growing the constraint). ◎ and ▲ turn the gap on; turning the gap off clears them; click an active chip again to clear it. Unmarked boxes hold their level. Link a tree to the period on show from the ↗ chip in its header |
| Phone · tablet | Pinch to zoom · two fingers to pan · Double-tap empty frame space for a new box · tap a box for its + · Long-press for the menu |
| Space-drag · scroll | Pan · pinch or ⌘-scroll to zoom · click the zoom level (or ⇧0) for 100 % |