A small, very private tool for gently capturing triggers and making patterns visible over time — without judging and without repairing.
What bothers me out there has almost nothing to do with what's out there — and almost everything to do with something in me.
The practice: whenever I think "it's out there", I write it down and ask one single question — "Are you sure it's out there?" At the end of the week I look at which patterns came up.
- There is nothing to fix. Observe, don't repair. "Let it out."
- No judgment — and never reinforce self-judgment. That's why there are deliberately no streaks, no points, no "good/bad" ratings.
- Inviting questions instead of answers. The tone ends on an open question.
- Maximally private. Local-first. Nothing gets uploaded.
You don't need to install anything or know how to code.
1. Get the tool (once)
- On the GitHub page, click the green Code button → Download ZIP, and unpack it anywhere on your computer.
- (If you're comfortable with git:
git cloneworks too, of course.)
2. Open the journal
- In the unpacked folder, double-click
app/index.html. It opens in your browser and works offline from then on.
3. When something triggers you, write it down (takes a minute)
- Note the situation (just the facts) and the story you're telling yourself about it. That's all that's required.
- If you like, add where you feel it in the body, the emotion, and which identity/role got touched ("I'm only ever the…").
- If a gentle question appears — "Are you sure it's out there?" — you can answer it in "The turn", or ignore it. It's an invitation, not homework.
- Press "Set it down · let it out". Done. Nothing else to do.
4. Once a week, look at the patterns (takes five minutes)
- Press "Copy this week · for Claude" in the app.
- Paste it into Claude (free account is fine).
- You'll get a short, gentle reflection: what came up, one suspected pattern, one open question to sit with. No advice, no to-do list.
5. Back up now and then
- Your entries live only in this browser. Press "Export everything (.json)" occasionally and keep the file somewhere safe. The app will gently remind you when it's time.
- The same file is how you deliberately share your list with someone, or move it to another device (Import).
That's the whole practice: write it down when it happens, look once a week, let the question sit.
The quick start above uses the app. There is a second way in for people who use Claude Code — both write the same format, so you can mix freely.
Open app/index.html in a browser — a double-click is enough. No
install, no account, works offline.
- Fill in the fields (only situation + story are required, the rest is optional).
- If there is a lot of "outside" and the turn is still empty, a gentle invitation appears: "Are you sure it's out there?" — an invitation, not a correction.
- "Set it down" saves locally in the browser (localStorage). Nothing leaves your device.
- "Copy this week · for Claude" puts a ready-made, gentle prompt on your clipboard — paste it into Claude (app or Claude Code) and you get the weekly reflection.
- Export / import (.json) for backups, or to deliberately share your list.
- Gentle backup nudge: if a few entries are unsaved (or your last backup is more than a week old), a soft question appears asking whether you'd like to export — no alarm, "Later" is always available. Protects you from losing entries when browser storage gets cleared.
On a phone: open the file via your files app, or host the repo with GitHub Pages and add the page to your home screen.
If you open Claude Code in the cloned folder, you have two commands (they
live in .claude/commands/, so they load automatically):
/trigger— Claude walks you gently through an entry and saves it asentries/YYYY-MM-DD-HHMMSS.json. You can also just start talking./week— Claude reads the last 7 days of entries and writes the weekly reflection: what came up, one suspected pattern, one open question. No solution, no advice. This happens entirely locally in the conversation — no API key, no cloud.
/week also reads app entries: drop an exported .json list into the
folder (or paste your "Copy this week" text into the chat) — it doesn't
matter whether you captured on your phone or in the terminal.
During the reflection, Claude draws on reference/lenses.md — a curated set
of interpretive lenses: the voice in the head, the witness behind it, stored
charge (old imprints — the backbone of "the same root trigger on different
surfaces"), letting through instead of pushing down, the Buddhist second
arrow (for the meta-trigger), Byron Katie's "Is that really true?", parts
and roles, Eckhart Tolle's pain-body, Tara Brach's RAIN as a tone, and an
optional Human Design lens (conditioning / not-self). Everything is offered
as an invitation to notice — no diagnosing, no fixing.
You share the tool, never your entries.
.gitignoreexcludes the contents ofentries/andreflections/. Your intimate data never lands on GitHub. Everyone keeps their own journal locally.- App entries live in the browser's localStorage — they don't go anywhere either.
- "Giving someone my list" is always a deliberate act: tap Export in the app and pass the file on, e.g. via Signal.
One entry (app and terminal identical):
{
"id": "2026-06-29-201433",
"timestamp": "2026-06-29T20:14:33",
"context": "work | relationship | family | other",
"trigger_outside": "the situation (the outside)",
"story": "who/what I'm blaming",
"body": "sensation, location",
"emotion": "the feeling",
"identity": ["roles/identities that got touched"],
"reflection_inside": "where is this in me?",
"meta_trigger": false
}An example lives in examples/.
trigger-journal/
├─ app/index.html # the UI for filling in (one file, offline)
├─ .claude/commands/ # /trigger and /week for Claude Code
├─ reference/lenses.md # interpretive lenses for the pattern recognition
├─ entries/ # your entries (NOT shared, via .gitignore)
└─ examples/ # one example entry
This is not a substitute for therapy. It is a tool for self-reflection and pattern recognition — a companion, not a treatment.