moshi-best-practices
Use when preparing or verifying a host for Moshi remote coding. Trigger this for Easy Pair host setup, SSH or preferably Mosh readiness, non-interactive shell PATH issues, tmux defaults, creating a tmux project session rooted at a chosen directory, adapting shell or tmux behavior with the `MOSHI_CLIENT` env signal, installing Moshi agent hooks for Claude Code or Codex CLI, or using the packaged `moshi DIR` tmux launcher.
Security Assessment
About moshi-best-practices
The moshi-best-practices skill prepares or verifies a host so it is easy to use for remote coding from the Moshi iOS client. It supports both fresh setup and verification of an existing setup, and follows the rules to inspect before editing, prefer direct config edits, and verify every outcome.
It covers host readiness (preferring Easy Pair via moshi-hook, with Mosh plus tmux as the preferred transport and SSH plus tmux as fallback, and concrete checks for tmux and mosh-server), recommended tmux defaults, and the MOSHI_CLIENT environment signal that lets shell rc files, prompts, and tmux configs detect a Moshi-launched session and adapt (for example clearing the status bar so swipe gestures work). It also sets up a tmux project session via the packaged launcher and installs agent hooks using the moshi-hook daemon, which holds a persistent WebSocket so tool-call approvals can be made bidirectionally from the iOS Live Activity or Apple Watch, covering Claude Code, Codex CLI, and OpenCode. It calls out security boundaries, such as the Easy Pair QR granting SSH access and the file secret store writing outside Keychain.
It is most useful for developers setting up a host for Moshi remote coding who want reliable SSH/Mosh, tmux, and agent-hook configuration with verification.
FAQ
When should I use this skill?
When preparing or verifying a host for Moshi remote coding, including Easy Pair setup, SSH or Mosh readiness, tmux defaults, project sessions, and agent hooks.
What transport does it prefer?
Mosh plus tmux as the preferred transport, with SSH plus tmux as the fallback, and at least one tmux session so the Moshi selector can appear.
What is the MOSHI_CLIENT signal?
An opt-in environment variable Moshi exports into the remote shell so rc files, prompts, and tmux configs can detect a Moshi session and adapt, for example clearing the status bar to keep swipe detection reliable.
How are agent hooks installed?
Via the moshi-hook daemon (installed and paired with a token), which holds a persistent WebSocket so tool-call approvals round-trip from the iOS Live Activity or Apple Watch, covering Claude Code, Codex CLI, and OpenCode.
What security boundaries does it flag?
Anyone who scans the Easy Pair QR before it expires can claim SSH access, and the file secret store writes host secrets outside Keychain to ~/.config/moshi/secrets.json.
Install moshi-best-practices
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
rjyo/moshi-skill