搜索

PythonReactSEOPDF
GitHub Skill

troubleshooting

Diagnose and resolve errors with Ciana's host bridges, CLI tools, Claude Code mode, macOS permissions, and gateway connectivity.

emanueleielo☆ 66 仓库 Stars12 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Troubleshooting

Reference guide for diagnosing errors. Read this when a command fails, a bridge is unreachable, or a user reports something isn't working.

When to Use

  • A host_execute call returns an error
  • Claude Code mode fails
  • User says something "doesn't work" or asks how to set up a feature
  • You get connection, auth, or permission errors

Gateway Errors

"Cannot connect to host gateway. Is the gateway server running?"

The gateway process is not running on the host machine.

Tell the user: Run make gateway on the host (outside Docker) to start it.

"Gateway auth failed. Check GATEWAY_TOKEN."

The token in the Docker container doesn't match the one on the host.

Tell the user: Verify that GATEWAY_TOKEN in .env matches on both sides, then restart both gateway and container.

"unknown bridge 'X'. Available: ..."

The bridge name doesn't exist in config.yaml under gateway.bridges.

Check: Are you using the correct bridge name? Compare with the available list in the error.

"command 'X' not allowed for bridge 'Y'"

The CLI command is not in the bridge's allowed_commands list. This is a security feature.

Tell the user: Add the command to the bridge's allowed_commands in config.yaml and restart the gateway.

CLI Not Found

"Command 'X' not found on host. Install it first."

The CLI binary is not installed on the host. Exit code 127.

Installation commands (Homebrew):

CLI Install command
remindctl brew install steipete/tap/remindctl
imsg brew install steipete/tap/imsg
spogo brew install steipete/tap/spogo
wacli brew install steipete/tap/wacli
sonoscli brew install steipete/tap/sonoscli
bear brew install steipete/tap/bear
camsnap brew install steipete/tap/camsnap
peekaboo brew install steipete/tap/peekaboo
blucli brew install steipete/tap/blucli
obsidian-cli brew install steipete/tap/obsidian-cli
openhue brew install openhue/cli/openhue
things-cli brew install thingsapi/things-cli/things-cli
op brew install 1password-cli

CLI Authentication

Some CLIs require one-time interactive setup on the host before they can work through the gateway. The gateway cannot handle interactive prompts (QR codes, passwords, browser flows).

Tell the user to run these manually in their terminal:

CLI Setup command Notes
spogo spogo auth import --browser chrome Needs Spotify Premium. Keychain popup: click "Always Allow"
wacli wacli auth then wacli sync --follow Scan QR code with WhatsApp on phone
imsg (automatic) Grant Full Disk Access + Automation for Messages.app in System Settings
op op signin Needs 1Password account
openhue openhue setup Press Hue Bridge button when prompted

macOS Permissions

Some CLIs need macOS privacy permissions. These are granted once in System Settings > Privacy & Security.

Keychain Access Popup

If a CLI tries to access Chrome cookies or saved credentials, macOS shows a Keychain dialog. This blocks the subprocess until the user responds.

Tell the user: Enter password and click "Always Allow" so it won't ask again.

Full Disk Access

Required by: imsg (reads Messages database)

Tell the user: System Settings > Privacy & Security > Full Disk Access > enable Terminal (or the app running the gateway).

Automation

Required by: imsg (controls Messages.app)

Tell the user: System Settings > Privacy & Security > Automation > allow Terminal to control Messages.

Reminders / Contacts / Calendar

CLIs that access these trigger a one-time permission prompt. Accept it when it appears.

Claude Code Mode

"Bridge returned HTTP 400"

The request to the gateway is missing required fields. Make sure the container is running the latest code.

Tell the user: Rebuild and restart: make build && make restart

"Bridge returned HTTP 401"

Auth token mismatch between the CC bridge config (CC_BRIDGE_TOKEN) and the gateway (GATEWAY_TOKEN).

Tell the user: Check that both tokens match in .env, restart both.

"Cannot connect to Claude Code bridge"

Same as gateway connection error. The CC bridge uses the gateway.

Tell the user: Run make gateway on the host.

Project list is empty

Claude Code stores projects in ~/.claude/projects/. If this directory doesn't exist or is empty, there are no projects to show.

Tell the user: Use Claude Code from the terminal first to create at least one project, or check that projects_dir in config.yaml points to the right path.

Session hangs or times out

Claude Code can take a long time for complex tasks. The default timeout is 0 (unlimited).

If it seems stuck, the user can exit CC mode and re-enter. The session state is persisted and can be resumed.

Edge Cases

Interactive commands don't work through the gateway

Any command that requires user input (stdin) will fail or hang. This includes:

  • QR code scans (wacli auth)
  • Password prompts
  • Browser-based OAuth flows
  • Confirmation dialogs

Rule: Always do initial auth/setup directly on the host terminal, not through Ciana.

Large output gets truncated

host_execute truncates output at 15,000 characters. For commands that produce very long output, use --limit, --json, or pagination flags to reduce output size.

Gateway runs on the host, not in Docker

The gateway process must run on the macOS host because it needs access to native apps (Messages, Reminders, Spotify, etc.). Docker containers can't access these.

The container reaches the host via http://host.docker.internal:9842.

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-03-11
索引更新时间
2026-03-11
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!