Troubleshooting
Find the problem, then follow the fix. If nothing helps, check the daemon log and open an issue on GitHub.
macOS says the app is blocked
Section titled “macOS says the app is blocked”The app is not signed with an Apple certificate, so macOS blocks it the first time.
- Open Natamux once.
- Open System Settings → Privacy & Security and click Open Anyway.
If there is no button, remove the quarantine flag:
xattr -dr com.apple.quarantine /Applications/Natamux.appWindows says it protected your PC
Section titled “Windows says it protected your PC”The installer is not signed with a Windows certificate, so SmartScreen shows Windows protected your PC. Click More info, then Run anyway. Check the file against SHA256SUMS.txt first if you like; see Verify the download.
The AppImage does not start on Ubuntu
Section titled “The AppImage does not start on Ubuntu”Ubuntu 24.04 and later can block Chromium’s sandbox. Either install the .deb, or start the AppImage with --no-sandbox:
./Natamux-linux-x86_64.AppImage --no-sandbox“command not found” when I start an agent
Section titled ““command not found” when I start an agent”Start agent types the agent’s command into the task’s terminal. If the program is not installed, or not on the PATH, the shell prints command not found.
The commands are claude, codex, gemini, copilot and cursor-agent.
-
Check in your own terminal:
command -v claude. -
Install the agent and log in to it once, outside Natamux.
-
If the program has another name or path, set
NATAMUX_<AGENT>_COMMANDfor the daemon, with<AGENT>one ofCLAUDE,CODEX,GEMINI,COPILOTorCURSOR:Terminal window export NATAMUX_CLAUDE_COMMAND=/opt/tools/claude -
Restart Natamux so the daemon gets the new variable.
The desktop app uses the PATH of your login shell. If you installed the agent after you opened the app, quit the app and open it again. Use NATAMUX_<AGENT>_ARGS to add options to an agent’s command line. See Environment variables.
The dashboard rejects my token
Section titled “The dashboard rejects my token”The dashboard shows “The daemon rejected that token. Paste the token it printed when it started.”
- Desktop app: you are signed in automatically. If you see the token field anyway, quit and open the app again.
- Browser, Docker: use the value of
NATAMUX_TOKENyou set. - Browser, daemon you started yourself without
NATAMUX_TOKEN: the daemon makes a new random token on every run and prints it once. Use the one from the latest start, or setNATAMUX_TOKENto keep it. - CLI:
natamuxneedsNATAMUX_TOKENand, when the daemon is not onhttp://127.0.0.1:4317,NATAMUX_URL. The desktop app’s token is indaemon-tokenin its user data folder.
The port is in use
Section titled “The port is in use”- Desktop app: it uses port 4317 when free and any free port otherwise, so it starts anyway. The CLI looks at 4317 by default, so set
NATAMUX_URLto the real address. The log line “starting the daemon on port N” shows it. - Daemon you started yourself: set another port with
NATAMUX_PORT. - Docker: set
NATAMUX_PORT(default 8080). - Only one copy of the desktop app runs. Opening it twice focuses the first window.
The daemon stopped
Section titled “The daemon stopped”The desktop app shows “The Natamux daemon stopped” with the last lines of the log, or “Natamux could not start its daemon”. Read those lines and the log. If a repository was moved, remove its project and add the new folder with File → Add Project….
A task does not change state while the agent works
Section titled “A task does not change state while the agent works”Natamux learns an agent’s state from its hooks. If the task stays “ready” or never reaches “needs input”:
- Start the agent with Start agent in the task, not by hand. Natamux adds the hook settings only for sessions it starts.
- Check that the
natamuxcommand exists in the task’s terminal:command -v natamux. The desktop app puts it first on the PATH. In Docker, hooks needNATAMUX_URL=http://host:8080/api. - Set
NATAMUX_DEBUG=1in the terminal to see why a hook did not arrive.natamux hookis silent otherwise and never blocks the agent. - A proxy on your machine can refuse calls to the daemon. Add
127.0.0.1toNO_PROXY.
Agents without hooks are followed by their output and bell. They can report with natamux ask and natamux done. See Agents and hooks.
Automated tests does not start
Section titled “Automated tests does not start”Automated tests starts when the whole group before it is done. In the default pipeline that group is Test spec and Implement, and Test spec waits for your approval. Open the task, read test-spec.md in the Docs tab, and click Approve on the Ready for review: Test spec banner. See The review loop.
The review keeps sending the task back
Section titled “The review keeps sending the task back”The Review agent may send the task back to Implement 2 times. The third time Natamux refuses, and the task waits in Needs input with “Review sent the task back 2 times. Decide what to do.” Read review.md in the Docs tab, then:
- fix the code yourself, or type to the agent in Shell 1, and press Mark as done on Review;
- Send back with your own reason, which has no limit;
- or Approve anyway when the findings do not matter.
To change who reviews, pick another Agent for Review in project settings.
Removing a workspace fails
Section titled “Removing a workspace fails”Natamux refuses to remove a worktree that has files not committed: “T-0001 has N changes that are not committed. Commit or discard them first”. Nothing is ended or deleted when this happens.
- Open the Changes tab.
- Commit the changes, or discard them in the terminal (
git restore .andgit clean -fdinside the worktree). - Remove the workspace again.
The branch is deleted only when it is fully merged. Otherwise it stays, and you delete it with git when you are sure.
Push or pull request fails
Section titled “Push or pull request fails”- Push uses your own git login. For github.com it also asks
gh auth git-credential, sogh auth loginorGH_TOKENis enough. - Create PR needs the
ghcommand, logged in. It refuses when the task already has a pull request.
Where the logs are
Section titled “Where the logs are”| What | Where |
|---|---|
| Desktop app, daemon | logs/daemon.log in the user data folder, or File → Show Daemon Log. macOS: ~/Library/Application Support/Natamux. Windows: %APPDATA%\Natamux. Linux: ~/.config/Natamux |
| Docker | docker compose -f compose.prod.yaml logs |
| A task’s history | The Activity section in the Details view of the task, or natamux events T-0001 |