Grass vs SSH Apps: Which Should You Use to Access Coding Agents from Your Phone?
SSH apps give you a raw terminal on your phone. Grass gives you a mobile-native interface built specifically for coding agents. Here's when each makes sense.
TL;DR: There are now four distinct tiers for accessing AI coding agents remotely — generic SSH terminal (Tailscale + tmux + Termius), SSH+ with agent workflow layer (Redock), DIY remote desktop (AFK), and purpose-built agent interfaces (Grass, Remote Control). Redock is the first iOS SSH client designed specifically for AI coding agent workflows; it launched publicly in 2026 and gained significant community attention with a September 2026 r/iosdev post — it is not Termius with a new coat of paint. The axis that still separates everything is where your session runs and how permission prompts reach your phone: Redock brings notifications and agent TUI polish to the SSH tier, but you still respond to Claude in the terminal; Grass — one surface, every agent, always on — intercepts permissions at the SDK level and delivers a native approve/deny modal. Whether that distinction matters depends on your workflow.
What problem does every AI coding agent developer run into?
You dispatch a Claude Code session to refactor a module. Two hours later you're in a meeting — and the agent has been sitting at a permission prompt for 90 minutes — idle, wasting hours of potential work time — while you were in the same building. One developer put it directly: "I'd kick off a task, walk away, and then Claude would hit a permission prompt or ask a clarifying question — and just sit there waiting. By the time I got back to my desk, I'd lost 20 minutes." Another: "Came back 15 minutes later and all three were just sitting there waiting for permission approvals. Dead compute time." The fix is remote access — but which approach depends on what you're actually optimizing for.
As of September 2026, developers have four distinct architectures to evaluate. The right choice turns on two questions: whether your laptop needs to stay on, and whether you want to respond to permission prompts in a native mobile modal or through the terminal.
What is Redock and how is it different from generic SSH apps?
Redock is a purpose-built iOS SSH+tmux client for AI coding agent workflows, not a general-purpose SSH client with a Claude logo on it. It launched publicly in 2026 and its September 2026 r/iosdev post brought peak community attention to the product. Redock positions itself as "Mobile SSH Terminal for AI Coding Agents" — explicitly calling out Claude Code, Codex, and Open Code. The developer described the direction directly: "The main technical direction is terminal-first rather than chat-first. Redock connects to your own machine over SSH and uses tmux for persistence, so the app does not need to proxy your coding session through my server."
What separates Redock from Termius or Blink Shell is a set of abstractions specifically built for agent workflows:
- Projects — saves host, working directory, and common action context per project, so you don't reconfigure on every open
- One-tap Actions — pre-configured commands for common agent operations, accessible without typing on a phone keyboard
- Agent TUI optimization — renders Claude Code's terminal UI more cleanly than generic SSH clients
- Built-in tmux UI — manage tmux panes without typing tmux commands on a small keyboard
- Live Activities + lock screen alerts — "Receive alerts when an agent needs attention or finishes. Live Activities keep its status on the Lock Screen"
- Voice dictation — dictate prompts instead of typing
- Buffered input — characters don't drop on variable-latency mobile connections
Redock's blog summarizes the stack: "SSH gives you access. tmux preserves the Session. Tailscale connects the devices. Redock turns these pieces into a manageable AI coding workflow." That framing is accurate — Redock makes the SSH+tmux stack significantly more ergonomic on iOS, but it does not change what the stack fundamentally is.
What are the four tiers of remote agent access?
Tier 1 — Generic SSH terminal (Tailscale + tmux + Termius/Blink): Raw terminal access. The session runs on whatever machine hosts tmux — your laptop or a VPS. Permission prompts are invisible until you check manually.
Tier 2 — SSH+ with agent workflow layer (Redock): SSH+tmux with agent-specific abstractions: Projects, Actions, tmux UI, Live Activities notifications. Still terminal-first — you interact with the agent through the terminal and approve permission prompts there. The session runs on your laptop or a VPS.
Tier 3 — DIY remote desktop (AFK): Streams your actual Mac desktop over WebRTC. Every tool on your Mac — Cursor, Windsurf, Claude Code, any IDE — is accessible from your phone. Your Mac must stay on.
Tier 4 — Purpose-built agent interfaces (Grass, Anthropic Remote Control): Built specifically for agent workflows, not terminal passthrough. Grass runs Claude Code, Codex, and Open Code on an always-on cloud VM — your phone connects to an agent that keeps working whether your laptop is open or not. Permission prompts arrive as native iOS modals with approve/deny. Anthropic Remote Control is a separate product that gives you Claude's conversation UI on your phone for sessions already open on a laptop — it is zero-setup but cannot start new agent sessions from mobile.
How does Redock handle persistent sessions when you disconnect?
Redock uses tmux for session persistence over SSH. When your phone disconnects from an SSH session running inside tmux, the tmux session stays alive on the host machine — Claude Code keeps running. This is the same persistence mechanism as Tailscale + tmux + Termius; Redock makes it easier to set up and maintain. The critical caveat is documented directly on Redock's site: "When an Agent runs inside tmux: an SSH disconnect does not automatically stop it. But if the laptop sleeps: tasks may pause because the machine is no longer running normally."
tmux persistence works when the host machine stays on. If you're running Claude Code on a VPS, tmux keeps the agent alive when you close the SSH connection. If you're running it on your laptop and the laptop sleeps, tmux doesn't help. For genuinely laptop-independent sessions, the agent needs to run on a server that doesn't sleep. See How to Keep Claude Code Running After SSH Disconnects for the complete tmux + VPS path.
Grass's cloud VM tier takes a structurally different approach: the session runs on a Daytona VM that runs 24/7 regardless of what your laptop does. You can close your MacBook and the agent continues. This is not a tmux keepalive — it's a different infrastructure model entirely.
How does Redock handle Claude Code permission prompts on your phone?
Redock's permission handling is notification-based: when Claude Code hits an approval gate, Redock sends an iOS Live Activity or notification to your lock screen. You see that Claude needs attention. To approve or deny, you navigate back to the Redock terminal and type your response. This is a meaningful improvement over zero-notification generic SSH — at least you know a prompt is waiting — but it is not a one-tap approve/deny workflow.
Grass takes a different architectural approach. The Grass server runs inside the Claude Code SDK's permission callback (canUseTool), which fires before each tool call. When a permission request arrives, Grass delivers it to the connected phone as a permission_request SSE event. The iOS app renders a native modal with the tool name, a syntax-highlighted preview of what will execute, and two buttons: Allow (green) / Deny. Tapping sends a POST /sessions/:id/permission with approved: true/false back to the server. The agent resumes immediately.
The practical difference: with Redock, you get a notification and then navigate to a terminal to type. With Grass, you get a native modal and tap once. This is why the community built a wave of DIY permission-forwarding tools (claude-push, claude-remote-approver, AgentDeck) before purpose-built apps existed. The developer behind claude-push noted: "Claude Code's permission system used to be a binary choice: either babysit your terminal or allowlist everything. claude-push adds a third option — mobile approval." Redock closes part of that gap with notifications; Grass closes it at the SDK level with native interaction. See How to Build Human-in-the-Loop Approval Gates for AI Coding Agents for the full architecture comparison.
What does Grass offer that Redock and SSH apps don't?
Grass is a machine built for AI coding agents. One surface. Every agent. Always on. Three things separate it from every SSH-based approach including Redock:
1. Laptop-independence. The session runs on an always-on cloud VM, not on your laptop or a VPS you manage yourself. You can close your MacBook and the agent keeps running. Redock, Termius, and any SSH client still require the host machine to stay on.
2. Native permission forwarding. Grass intercepts permissions at the @anthropic-ai/claude-agent-sdk level and delivers them to your phone as native iOS modals — approve/deny with a syntax-highlighted command preview, without opening a terminal. Redock delivers notifications but the approval still happens in the terminal.
3. Zero SSH knowledge required. Setup is npm install -g @grass-ai/ide, run grass start, scan a QR code. No SSH server configuration, no Tailscale setup, no tmux concepts. Redock explicitly requires all three.
The honest tradeoff: Grass requires trusting a cloud VM provider with your codebase (Grass also uses BYOK — you supply your own API key and it never passes through Grass servers). SSH-based approaches — Redock included — keep your codebase entirely on your own infrastructure, which may matter for compliance or security requirements.
Comparison table: SSH vs Redock vs AFK vs Remote Control vs Grass
| SSH (Tailscale + tmux) | Redock | AFK (remote desktop) | Remote Control | Grass | |
|---|---|---|---|---|---|
| Laptop must stay on? | Yes | Yes (or own VPS) | Yes | Yes | No (cloud VM) |
| Start sessions from phone? | Yes | Yes | Yes | No | Yes |
| Permission notifications? | No | Live Activities | Via desktop view | Limited | Native modal |
| Approve permission from phone? | Terminal only | Terminal only | Via desktop view | Limited | One-tap modal |
| Mobile UX quality | Raw terminal | Agent-optimized terminal | Streamed Mac desktop | Claude conversation UI | Native agent interface |
| Supports Cursor / Windsurf? | Terminal only | Terminal only | Yes (full desktop) | No | No |
| Supports Claude Code? | Yes | Yes | Yes | Yes | Yes |
| Supports Codex / Open Code? | Yes | Yes | Yes | No | Yes |
| Diff viewer? | Terminal only | Terminal only | Via desktop view | No | Native mobile view |
| SSH knowledge required? | Yes | Yes | No | No | No |
| tmux knowledge required? | Yes | Abstracted | No | No | No |
| Session survives laptop sleep? | No (laptop) / Yes (VPS) | No (laptop) / Yes (VPS) | No | No | Yes |
| Setup complexity | High | Medium | Low | Zero | Zero |
| Cost | Free (+ Tailscale) | See website | See website | Free (all plans) | Free tier (10h), then paid |
| Agent-agnostic? | Yes | Yes | Yes | Claude only | Yes (Claude Code, Codex, Open Code) |
When is Redock the right choice?
Redock wins when you are already comfortable with SSH and tmux — you have Tailscale set up and understand tmux session management. It is the natural upgrade from Termius for developers who want agent-specific ergonomics (Projects, Actions, Live Activities) without changing their infrastructure model. It also wins when you need full terminal access to your environment alongside agent oversight, when you use multiple agents or tools beyond what Grass natively supports, or when you are running Claude Code on a VPS you already manage and want a best-in-class iOS SSH client to reach it.
Redock is the wrong choice if you don't know SSH, want to close your laptop and forget about it, or need one-tap permission approvals without navigating to a terminal first.
When is generic SSH the right choice?
SSH (Tailscale + tmux + Termius) wins when you want zero third parties in the session path, you're already on a VPS with tmux configured, or you're on Android where Termux + Tailscale is the equivalent path. SSH is wrong when you want native permission forwarding, need to close your laptop, or dread a phone keyboard in a raw terminal for multi-hour agent interactions. See How to Use Tailscale with Claude Code for Remote Access and How to Authenticate Claude Code and Codex on a Headless VPS for setup walkthroughs.
When is Grass the right choice?
Grass wins when you want to close your laptop and have the agent keep running without managing a VPS, need one-tap permission approvals from a native modal, are running Claude Code, Codex, or Open Code and want an agent-native mobile interface with a diff viewer and session history, or have no SSH experience and don't want to acquire any. For the cloud VM path, see How to Set Up Claude Code on Daytona and How to Connect Grass to Daytona.
Grass is wrong when you need Cursor or Windsurf, want everything running on your own infrastructure with no cloud involvement, or need full shell access for commands beyond what the agent UI exposes.
Can you use Redock and Grass together?
Yes — they solve different sub-problems. Redock is the right tool for emergency shell access, running agents or CLI tools that Grass doesn't expose natively, and tmux session management on a VPS. Grass is the right tool for agent-native permission oversight, structured diff review, and sessions that need to survive laptop close. A developer who wants both full terminal access and agent-native oversight can run Redock for the former and Grass for the latter without conflict.
FAQ
What is the difference between Grass and Redock for mobile Claude Code access?
Redock is an iOS SSH+tmux client purpose-built for AI coding agent workflows — it makes Tailscale + tmux ergonomic on a phone, adds Live Activities notifications when Claude needs attention, and improves agent TUI rendering. You still approve permission prompts through the terminal. Grass is an agent-native client that intercepts Claude Code's permission requests at the SDK level and delivers them as native iOS approve/deny modals. Grass also runs agents on a cloud VM so your laptop can sleep; Redock requires the host machine to stay on or the agent to be running on a separately managed VPS.
Does Redock work when my laptop is closed, or does it need the SSH connection kept alive?
Redock uses tmux to keep the agent running when your phone disconnects — so the session survives a dropped SSH connection. But if your laptop sleeps, tmux doesn't help: "tasks may pause because the machine is no longer running normally," as Redock's own documentation states. To get true laptop-independence with any SSH-based tool including Redock, the agent needs to run on a VPS or a managed cloud VM that doesn't sleep, not your MacBook.
Is Redock better than Termius or Blink Shell for Claude Code?
For AI coding agent workflows specifically, yes. Redock adds Projects (saved context per repo), one-tap Actions, agent TUI optimization, built-in tmux UI, and Live Activities lock screen alerts. Termius and Blink Shell don't have agent-specific abstractions — you configure everything manually and get no feedback when Claude needs attention.
What is the best iOS app for Claude Code remote access without SSH knowledge required?
Grass is the current best answer for this use case. Setup is three steps: npm install -g @grass-ai/ide, run grass start, scan a QR code. No SSH configuration, no Tailscale, no tmux. Redock explicitly requires all three. Anthropic's Remote Control is also zero-setup but cannot start new sessions from mobile.
What is the best way to get permission approvals from Claude Code on my phone?
Grass delivers permission requests as native iOS modals — syntax-highlighted preview of what Claude wants to run, then tap Allow or Deny. This is the most direct approval path currently available. Redock sends a Live Activities notification when Claude needs attention but the approval still happens in the terminal. DIY tools like claude-push exist for SSH-based setups that need mobile approval gates without switching clients.
Grass is a machine built for AI coding agents — an always-on cloud VM where Claude Code, Codex, and Open Code run 24/7, accessible from your phone, laptop, or automation. Free tier: 10 hours, no credit card. codeongrass.com