# What Tenfold changes

> What Tenfold writes to ~/.claude/settings.json and your Mac: the hooks, the status line wrapper, the backup, where events go, and how to remove them.

Source: https://gettenfold.app/docs/what-tenfold-changes · Tenfold docs · Updated 2026-11-04

To follow your agents, Tenfold adds hooks to Claude Code's settings and wraps your status line. It asks first, in the setup, and you can take everything back out from Settings. This page lists every change.

## In ~/.claude/settings.json

### The hooks

Tenfold adds one hook group to each of these events:

| Event | Matcher | What Tenfold uses it for |
|---|---|---|
| `PermissionRequest` | `*` | Showing a permission prompt in Tenfold, and answering it there |
| `PermissionDenied` | `*` | Marking a tool call that was denied |
| `SessionStart`, `SessionEnd` | none | Linking a tab to its Claude Code session |
| `Notification` | none | Knowing when an agent is waiting on you |
| `Elicitation`, `ElicitationResult` | none | An MCP server asking you for input |
| `PreCompact`, `PostCompact` | none | Showing that a session is compacting |
| `PreToolUse` | `Bash` | Saving the files a shell command is about to change |

Each one runs a script from Tenfold's folder in Application Support. Your own hooks stay as they are. Tenfold recognises its groups by the script names, `tenfold-hook.sh` and `tenfold-snapshot.pl`, so reinstalling replaces them instead of adding copies. On launch, it also removes groups that older versions of Tenfold registered.

The hooks only report from agents started in Tenfold. Every Tenfold terminal carries a `TENFOLD_SESSION_ID` variable, and the scripts exit straight away without it. Your other terminals are untouched.

### The status line

Tenfold replaces the `statusLine` command with one that runs its reporter, `tenfold-statusline.sh`. The command ends with the comment `# tenfold-statusline.sh`. The reporter passes the status line data to Tenfold, then runs your original command with the same data, so your line looks the same in every session. Your other `statusLine` keys, like `padding`, are kept.

Your original command is saved in `tenfold-statusline-original.txt`, and a copy travels inside the new command. If Tenfold's script is ever missing, the command runs your original status line instead, or prints nothing if you had none.

### The backup

Before its first change, Tenfold copies the file to `~/.claude/settings.json.tenfold-backup`. It's written once and never overwritten, so it keeps the file as it was before Tenfold.

Tenfold also:

- keeps every key it doesn't manage, your key order and the file's permissions;
- writes through a symlink, if `settings.json` is one;
- never touches the file if it isn't valid JSON, and tells you in Settings.

## On your Mac

Tenfold's own files live in `~/Library/Application Support/Tenfold/`:

- `tenfold-hook.sh`, `tenfold-statusline.sh` and `tenfold-snapshot.pl`, the scripts the hooks and status line run. They're rewritten at each launch to match your version of Tenfold.
- `tenfold-statusline-original.txt`, your original status line command.
- `inbox/`, where events land. Each hook and status line refresh writes one small JSON file. Tenfold reads it and deletes it.
- `replies/` and `app.pid`, used to answer permission prompts from Tenfold's chat.
- `snapshots/`, copies of the files a shell command names, taken just before it runs, so Tenfold can show what the command changed. Copies are capped in number and size, and removed after two hours.

None of this is uploaded.

Worktrees that Tenfold creates for you go in `~/.tenfold/worktrees/`. See [Parallel agents](https://gettenfold.app/docs/parallel-agents#worktrees).

## Permission prompts in the chat

In a chat session, the `PermissionRequest` hook waits for your answer in Tenfold, for up to 590 seconds and only while Tenfold is running. Claude Code's own prompt shows at the same time, and whichever you answer first wins.

The shell-command hook never stands in the way. It has a 5-second limit, prints nothing and always lets the command run.

## Remove the hooks

Open Settings, go to the **Integrations** page, and choose **Uninstall integration**. Tenfold:

1. removes its hook groups from `~/.claude/settings.json`, keeping yours;
2. puts your original status line back, with your other `statusLine` keys;
3. deletes its scripts and snapshots from Application Support;
4. turns **Track Claude Code** off.

If you replaced Tenfold's status line by hand, Tenfold leaves it alone. If the saved copy of your original has gone missing, Tenfold removes the `statusLine` key, which gives you Claude Code's default line.

Turning **Track Claude Code** off also removes the hooks and restores your status line. The **Status line** switch on the same page restores just the status line.

Dragging Tenfold to the Trash can't run any code, so it doesn't remove the hooks. Uninstall the integration first.

### If you already deleted the app

Paste this into Terminal:

```sh
curl -fsSL https://gettenfold.app/uninstall.sh | bash
```

It removes Tenfold's hooks, puts your original status line back, and deletes Tenfold's scripts and snapshots. Your own hooks and settings stay as they are, and it saves a copy of `settings.json` before changing it. If the file isn't valid JSON, it stops without changing anything.

You can [read the script](https://gettenfold.app/uninstall.sh) before you run it.

## Settings → Claude Code

Changes you make yourself in the Claude Code tab of Settings are separate from the hooks. See [Your Claude Code setup](https://gettenfold.app/docs/claude-code-setup#how-changes-are-made).
