Documentation
Set up and understand
Installation
Download the archive, drag AItention.app into
Applications, launch it. The app is signed with a Developer ID and
notarised by Apple — no warning appears.
The status hooks
Without hooks the app can list which sessions are running, but not
what they are doing. On first launch it offers to set them up: it
adds entries to ~/.claude/settings.json that call a bundled
program. That program writes a status file and does nothing else.
A backup is made before every change to that file. All entries are marked
# aitention so removal never touches hooks you configured
yourself:
~/Applications/AItention.app/Contents/MacOS/AItention --uninstall-hooks
The states
| State | Meaning |
|---|---|
| Decision | Claude has asked a question with options to choose from. |
| Waiting | A question or a permission is pending. |
| Error | The turn failed on an API error — overload, rate limit, billing. |
| Done | The turn finished, the reply is unread. |
| Working | A prompt is running, tools are executing. |
| Ready | Session open, no turn active. |
| Dormant | Ended, but resumable with claude --resume. |
If a working session goes quiet for more than thirty minutes it loses its colour and shows how long it has been silent instead. A stale display that looks confident is worse than one admitting it does not know.
Where the data comes from
Everything the app shows comes from these files. None of it leaves the machine.
| File | What for |
|---|---|
~/.claude/sessions/<pid>.json | Which sessions run, their working directory and origin |
~/.claude/aitention/status/<id>.json | The live state, written by the hook — the only file AItention creates itself |
~/.claude/projects/…/<id>.jsonl | Transcripts: replies, tool calls, tokens |
~/.claude/tasks/<id>/ | A session's task list, if it keeps one |
~/Library/Application Support/Claude/… | Title, model and mode of desktop sessions, plus rate window usage |
Activating a licence
After purchase you receive a mail with a button that opens the app and enters the licence. If that does not work: Settings → Licence → paste the key → Activate. No connection is made.
When something is wrong
The diagnostic output shows what the app sees without starting the interface — including every path and the hook status:
~/Applications/AItention.app/Contents/MacOS/AItention --dump
To check a licence key: --verify-licence <key>