-
Notifications
You must be signed in to change notification settings - Fork 0
[claude-hackernews] Reply draft: Kirikiri Show HN, mobile supervision asymmetry vs hook layer (id=47996198) #55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
NiveditJain
wants to merge
1
commit into
main
Choose a base branch
from
luv-64
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # Reply draft: Kirikiri Show HN, mobile supervision asymmetry vs hook-layer gating | ||
|
|
||
| **Status:** draft (pending manual post) | ||
|
|
||
| **HN:** https://news.ycombinator.com/item?id=47996198 | ||
|
|
||
| **Story / OP:** Show HN: Kirikiri - A mobile IDE for Claude Code (iOS, open source) by Husena (no external link, OP body in thread). | ||
|
|
||
| **The post (OP body):** | ||
|
|
||
| > Claude Code runs in a terminal. Phones don't have good terminals. | ||
| > That's the problem Kirikiri solves. | ||
| > | ||
| > Connect to Google Cloud Shell or any SSH server, run Claude Code | ||
| > there, and interact with it from your phone. Instead of fighting | ||
| > a software keyboard, you place floating tap buttons on screen for | ||
| > your most-used commands - git push, npm run dev, whatever you | ||
| > type constantly. | ||
| > | ||
| > It's early, but the goal is to make the phone a first-class | ||
| > environment for AI-assisted development: Claude Code or Codex | ||
| > writes the code, Kirikiri is the shell layer to run it. | ||
| > | ||
| > Built with Flutter + dartssh2. Plugin system lets you add | ||
| > extensions from GitHub repos. | ||
| > | ||
| > iOS: https://apps.apple.com/jp/app/kirikiri/id6764003368 | ||
| > Source: https://github.com/555734/Kirikiri-IDE/tree/main | ||
| > | ||
| > Anyone already using Claude Code on mobile - what's broken | ||
| > for you? | ||
|
|
||
| **My reply (paste verbatim into the HN composer):** | ||
|
|
||
| ``` | ||
| (disclosure: I work on FailProof AI: https://github.com/exospherehost/failproofai) | ||
|
|
||
| The thing that's broken for me about driving Claude Code from a phone isn't the keyboard, it's the supervision asymmetry. On desktop you accept/deny per tool call; on a phone the ergonomics push you toward "yolo mode" or "approve everything in this session." Tap-buttons help on the input side, but they don't help with the failure I keep hitting: I greenlight one Bash and Claude proceeds to rm -rf the wrong path while I'm scrolling Twitter on the way to lunch. | ||
|
|
||
| What's worked for me on the SSH-from-phone setup is to push that one specific gate up to a PreToolUse hook that doesn't need attention: anything matching rm -rf gets a hard deny by default and the agent gets the deny string back as feedback so it picks a different path. Per-call approvals stay opt-in for the few cases where the prompt is actually ambiguous. | ||
| ``` | ||
|
|
||
| **Insight for the FailProof team:** | ||
|
|
||
| Mobile / SSH-from-phone is a distinct user segment we don't talk about in the docs. The relevant point isn't "FailProof on a phone" - the policy engine is on the remote box, not the phone. The relevant point is that mobile/headless ergonomics make per-tool-call approval prompts effectively useless: the user's choice collapses to "yolo mode" or "deny everything" because tapping per-call is too expensive. That's a great pitch for upfront declarative policies: the supervision moves from "human approves each call" to "human declares the rules once, then doesn't have to look at every Bash." Worth a short docs note or blog post titled something like "Why hook-layer policies matter when you're supervising an agent from your phone." Also useful for partner conversations with phone-shells like Kirikiri / Conductor / Codex Cloud Shell where the same ergonomic problem applies. Concrete next step: add a one-paragraph "headless / mobile" usage note to the README anchoring on this asymmetry argument. | ||
|
|
||
| **Notes / findings:** | ||
|
|
||
| - Thread is 24h old, 0 comments at the time of drafting. Show HN with low traction. My reply will be the first; the OP (Husena) is the primary audience and has explicitly solicited "what's broken for you" feedback, so reply visibility is decent even though the broader audience is small. | ||
| - Reply form is rendered (composer textarea + add-comment submit), so the thread is still replyable even at low engagement. | ||
| - Adjacent-product gate: Kirikiri is a phone shell layer that runs Claude Code over SSH; not a sandbox / gateway / hook manager / policy engine itself, but it's the layer above one. The reply leads with substantive engagement on Kirikiri's specific UX problem (tap-buttons help with input but not with supervision) before touching FailProof's seam. | ||
| - Voice: ASCII punctuation only. Used straight quotes, hyphens, colons, semicolons. No em / en dashes, no curly quotes, no Unicode arrows or fancy ellipsis. Length ~146 words including disclosure. | ||
| - Single failure mode named (rm -rf) tied to a single hook concept (PreToolUse hard deny). No install command, no comma-list of policy names, no scope / version / feature-catalog talk. | ||
| - Cross-thread guard: this is a *new* angle (mobile / SSH supervision asymmetry) that doesn't overlap with prior FailProof drafts in this repo. Recent drafts on the static-vs-runtime seam (Snyk, Smithery, Trent, Spec27, TrainForgeTester) and on workflow-shape-vs-invariant-shape (BetterClaw) both engage at the codebase / agent-tool-catalog layer, not at the supervision-ergonomics layer. Safe. | ||
| - Discovery path: /ask -> /show -> /newest -> hn.algolia.com searches for "agent deleted", "claude code hooks", "agent rm -rf", "guardrail agent", "ai agent broke", "Show HN claude code", "Tell HN", "agentic coding", "claude permissions", "destroyed", and /from?site=lookups. Many fresh Show HN candidates were already covered by existing PRs (saw 44 covered IDs in the open PR list). Kirikiri stood out as fresh, adjacent, and OP-soliciting. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a language tag to the fenced block (MD040)
Line 35 should declare a code fence language to satisfy markdownlint and keep CI/docs lint clean.
Suggested fix
📝 Committable suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 35-35: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents