Skip to content

Troubleshooting

Symptom: The onboarding screen says no providers are installed, or a provider that is installed does not appear in Settings.

CheckAction
Binary not in $PATHOpen a new terminal and run which claude (or gemini, codex). If nothing is returned, install the CLI tool or add it to $PATH.
App inherits a minimal $PATHMagia enriches $PATH at runtime by searching Homebrew, nvm, Volta, fnm, and common install locations. Confirm the binary is in one of those locations.
Manual path override neededGo to Settings → Providers, find the provider, and set a custom binary path.
Hooks not yet configuredAfter a fresh install, complete the onboarding wizard so Magia can inject hooks into the provider settings file.

Symptom: Sessions complete but no events appear in the session view, or the session status never updates.

CheckAction
Hooks not configuredGo to Settings → Providers and click Re-configure hooks for the affected provider.
Hooks outdatedIf a Magia update changed the hook format, check_hooks_outdated will return true. Re-running hook configuration from Settings will update them.
Socket not listeningThe hook listener connects via a Unix socket in $TMPDIR/magia-{uid}/. Check that the socket file (hooks-prod.sock in production) exists. If not, quit Magia and relaunch.
Multiple Magia instancesRunning a dev worktree and the production build simultaneously is supported — each uses a different socket name. Hooks from a session started in one instance will not appear in the other.
Provider config directory non-standardIf you use a non-default Claude config directory (e.g. a multi-account setup), ensure the correct account is selected in Settings → Providers.

Symptom: An agent session appears to be running but produces no new output. The spinner keeps spinning.

CheckAction
Process still aliveIn the session sidebar, check whether a “kill session” button appears. If the underlying process has died silently, the UI may take up to 5 seconds to detect it (PID health-check interval).
Watchdog timeoutMagia has a configurable watchdog. After watchdogTimeoutSecs (default: 15) of silence, a warning is shown. You can adjust this in Settings → General.
Waiting for permissionThe agent may be waiting for you to approve a tool use. Check the chat view for a pending permission request.
Increase the timeoutIf the model is slow, increase watchdogTimeoutSecs in Settings → General.
Kill and retryUse the Kill session button in the session sidebar, then start a new session.

Symptom: The embedded terminal shows a blank screen or immediately exits.

CheckAction
Shell not foundThe default shell is read from $SHELL. If $SHELL is not set or the binary does not exist, the terminal will fail. Go to Settings → Terminal and set a shell path manually (e.g. /bin/zsh).
Working directory invalidMagia opens the terminal in the session’s working directory. If that directory has been deleted or is on an unmounted volume, the PTY will fail to start.
Environment variable conflictA broken $PATH or invalid $TERM can prevent the shell from starting. Open a normal terminal and check your shell init files (~/.zshrc, ~/.bashrc).

Symptom: The microphone button does nothing, transcription fails, or the wrong language is detected.

CheckAction
Voice input disabledEnable voice input in Settings → Voice.
Whisper model not downloadedGo to Settings → Voice and download a model. The base model is a good starting point.
Microphone permission not grantedmacOS requires microphone permission. Open System Settings → Privacy & Security → Microphone and ensure Magia is allowed.
Wrong audio deviceIf you have multiple input devices, go to Settings → Voice and select the correct microphone.
Language detection wrongIf transcription quality is poor, set a specific language in Settings → Voice instead of using "auto".
Parakeet model missingIf sttEngine is "parakeet" and the model is not downloaded, transcription will silently fail. Switch to "whisper" or download the Parakeet model from Settings → Voice.

A factory reset deletes all Magia data, removes hook configuration from provider settings files, uninstalls the CLI, and restarts the app to the onboarding screen.

Steps:

  1. Open Settings → General → Danger Zone.
  2. Click Factory Reset.
  3. Confirm the prompt.

Magia will:

  1. Uninstall the magia CLI symlink.
  2. Remove hooks and OTel config from all Claude Code accounts.
  3. Remove Gemini hooks.
  4. Delete the app data directory (~/Library/Application Support/sh.magia.app/).
  5. Delete the app cache directory (~/Library/Caches/sh.magia.app/).
  6. Delete WebKit data (~/Library/WebKit/sh.magia.app/).
  7. Delete log files (~/Library/Logs/sh.magia.app/).
  8. Restart to the onboarding screen.

LogLocation
Magia application log~/Library/Logs/sh.magia.app/
Production builds (Console.app)Open Console.app, filter by sh.magia.app

In dev mode, log output goes to the terminal where pnpm dev:worktree is running. The log level is set to Info in debug builds.

Open the Magia window, then open Settings → General → Developer Tools (requires Developer Mode). This opens the WebKit web inspector where you can see JavaScript console output.

Each session stores its raw events in a .jsonl file inside the provider’s session directory (e.g. ~/.claude/projects/…/). These can be inspected directly with any JSON viewer.


Before filing a bug, check the GitHub Issues list to see if it has already been reported.

When filing a new issue, include:

  1. Magia version (visible in Settings → About or the window title bar in dev mode).
  2. macOS / OS version.
  3. Provider and model being used.
  4. Steps to reproduce the problem.
  5. What you expected to happen vs. what actually happened.
  6. Relevant log output from ~/Library/Logs/sh.magia.app/ (redact any sensitive content).
  7. Whether the issue reproduces after a fresh install or factory reset.

Open a bug report on GitHub →