Repository navigation
Publish guides to steering a running Codex turn from a phone, sharing an OpenCode session without handing over provider keys, sharing a live OpenCode conversation now that /share is gone, scripting a Copilot CLI prompt run you can watch from a phone, checking a coding agent's report against git from a phone, watching a Muse Spark Open server on two Mac Studios from a phone, watching Claude Code wait out a usage limit from a phone, and seeing the images Codex generates from a browser - #326
Open
artemiia wants to merge 8 commits into
Open
artemiia wants to merge 8 commits into
artemiia wants to merge 8 commits into
Conversation
Codex CLI 0.163.0 (2026-10-15) takes follow-ups mid-turn and makes Ctrl+X its leader key. The post shows steering a shared Codex session from a phone and explains, from attach_unix.go, what shell attach does with each Ctrl-X. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rovider keys Ties the OpenCode Console breach disclosed on 2026-10-17 to rotating the provider key in an unshared terminal, starting OpenCode with env -u and a read-only shell link, keeping --files-root away from auth.json, and rotating the session password after the review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…re is gone OpenCode 1.19.1 discontinued session sharing on October 15. The guide shows how shell opencode, run from OpenCode's Bash tool, forks the current conversation into an encrypted browser link, how to make OpenCode ask first, rotate the password the model saw, fork an exact session by ID, and what the setup does not do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rom a phone Copilot CLI 1.0.100 (2026-10-19) adds --trust-folder for one-off -p runs. The guide wraps a scoped prompt-mode job in a read-only shell share with a deadline, keeps the prompt out of the recorded command line, collects the link with --json, and gets the exit status back with --foreground. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a phone Adds a tutorial tied to OpenAI's 2026-10-20 report on two internal coding agents that weakened misalignment monitoring, one of which then misreported it. The guide runs Codex in one shell session and a plain check session in the same checkout, and reads the diff against the starting commit from a phone before the agent's summary. Includes a new cover illustration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…os from a phone Meta released Muse Spark Open on 2026-10-15 with a cookbook that serves it across two Mac Studios with mlx.launch. The guide links both Macs to one account, runs each weights download as a named session, starts the MLX server behind a read-only link, and stops it from the right machine. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… phone Claude Code 2.1.305 lets its unattended retry mode recheck whether a usage limit was lifted early. The guide starts such a run inside shell with the watchdog in its environment, reads the summary card as a finish line, reads the live screen for the wait, and bounds the night with --auto-close. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex CLI 0.164.0 previews generated images with Kitty or Sixel graphics, which the browser viewer drops. The guide strips the terminal hints Codex reads, opts generated_images into the Files panel, narrows the root for a read-only review, and lists what the setup does not do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What changes for the user?
Adds eight blog posts.
2026-10-17: /blog/how-to-steer-a-running-codex-turn-from-your-phone-and-keep-ctrl-x-working/
shell attach's Ctrl-X D detach sequence.shell --name ... codex, steering it from a phone (the phone key row and its missing Ctrl key, the 1.8 s single-typist lease), and whatshell attachdoes with each Ctrl-X case, taken fromcmd/shell/attach_unix.go(750 ms window, Ctrl-] legacy key, the browser link bypassing the filter). It also has a section on what the setup does not do.blog/posts.json(new entry)blog/posts/how-to-steer-a-running-codex-turn-from-your-phone-and-keep-ctrl-x-working.htmlpublic/blog/banners/how-to-steer-a-running-codex-turn-from-your-phone-and-keep-ctrl-x-working.webp(1200x630)2026-10-18: /blog/how-to-share-an-opencode-session-without-handing-over-your-provider-keys/
opencode auth logout/login/listin a terminal that is not shared; why an interactive link reaches OpenCode's environment andauth.json(OpenCode's!shell commands); what shell strips from the wrapped program's environment since 0.24.1 (read incmd/shell/session_unix.go, Unix path only); starting withenv -u ... shell --read-only --name ... opencode;--files-rootkept away from the home directory; sending link and password separately;shell password rotateandshell kill; and what the setup does not do.blog/posts.json(new first entry)blog/posts/how-to-share-an-opencode-session-without-handing-over-your-provider-keys.htmlpublic/blog/banners/how-to-share-an-opencode-session-without-handing-over-your-provider-keys.webp(1200x630)2026-10-19: /blog/how-to-share-a-live-opencode-conversation-now-that-share-is-gone/
/shareno longer work and share URLs cannot be imported. OpenCode 2.0.30 removed the backend and/sharethe same day.shell opencodedoes when OpenCode's Bash tool runs it (read incmd/shell/handoff.goandhandoff_opencode.go:OPENCODE=1detection, lsof plusopencode dblookup,opencode --session <id> --fork, the Handoff and Note lines, the--continue --forkfallback); an OpenCode"shell *": "ask"permission rule; rotating the password the model saw withshell password rotate; forking an exact session from your own terminal withopencode session listandshell ... -- opencode --session <id> --fork;shell attachandshell kill; and what the setup does not do. OpenCode details were checked against the v1.19.3 source.blog/posts.json(new first entry)blog/posts/how-to-share-a-live-opencode-conversation-now-that-share-is-gone.htmlpublic/blog/banners/how-to-share-a-live-opencode-conversation-now-that-share-is-gone.webp(1200x630)2026-10-20: /blog/how-to-script-a-copilot-cli-prompt-run-you-can-watch-from-your-phone/
--trust-folderfor one-off prompt-mode sessions started with-por piped stdin, and a--disable-client-telemetryflag.--trust-folderdoes and does not grant (from GitHub's programmatic reference); scoping--allow-tool; putting the prompt in a script because shell records the whole command line, arguments included, inshell listand the linked account (read incmd/shell/sessions.godisplayCommandandmain.go);shell --read-only --name ... --auto-close 30m -- ./scriptand the session card; SIGTERM then SIGKILL after 2 s at the deadline (Unix path,session_unix.goandprocess_unix.go); what the browser viewer shows once the job ends (web/main.ts); collectingshare_urlande2ee_passwordfrom the--jsonevent underumask 077; getting the exit status with--foreground(128 plus the signal number on Unix) orshell ls --all --json; and what the setup does not do.blog/posts.json(new first entry)blog/posts/how-to-script-a-copilot-cli-prompt-run-you-can-watch-from-your-phone.htmlpublic/blog/banners/how-to-script-a-copilot-cli-prompt-run-you-can-watch-from-your-phone.webp(1200x630)2026-10-21: /blog/how-to-check-a-coding-agents-report-against-git-from-your-phone/
shell --name "check"session (no command, so$SHELLor/bin/sh, read incmd/shell/main.goandprocess_unix.go) next toshell --name "migration" codexin the same checkout; keeping the starting commit in that shell's memory and acheckfunction built ongit --no-optional-locks status --shortandgit diff --stat "$start";-G, a tests diff andgit logfrom the phone before reading the agent's summary; optionalshell permissions <ID> --summaries=trueand how a Codex summary (redacted 12 KiB tail to the attested summarizer) differs from a Claude Code one (its own transcript), from docs/summaries.md;shell killand what an open tab prints (web/main.ts); a callout that the check session is an unsandboxed interactive shell; and what the setup does not do, including that nothing incmd/shellrefusesshell list --jsonorshell killfrom inside a session (onlySHELL_ONLINE=1is set,session_unix.go). The git commands were run with git 2.39 on macOS.blog/posts.json(new first entry)blog/posts/how-to-check-a-coding-agents-report-against-git-from-your-phone.htmlpublic/blog/banners/how-to-check-a-coding-agents-report-against-git-from-your-phone.webp(1200x630)2026-10-22: /blog/how-to-watch-a-muse-spark-open-server-on-two-mac-studios-from-your-phone/
mlx.launch ... -- mlx_lm.servercommand on port 8080. Press coverage read: MacStories and Gigazine.shell auth(--no-browser,--no-remote-start) and what the account records (share URL, full command line, host name, timing;main.go,session_link.go); eachhf downloadas ashell --name ...session and its card (session_output.go);shell lsacross machines, its compact format under 132 columns, the ten-minute machine-gone rule andshell ls --all --jsonexit_code(account_sessions.go,sessions.go); the MLX server undershell --read-only --name muse-server -- mlx.launch ... -- mlx_lm.server ...and how the two--markers parse; a callout thatmlx.launchbroadcasts stdin to every rank; checking/v1/modelsfrom a plain session;shell kill(six-character prefix, SIGTERM to the local process group then SIGKILL after 2 s,sessions.go,session_unix.go,process_unix.go) and why ranks on the second Mac need a separate check; and what the setup does not do (no port forwarding, no wake or restart, read-only still shows output, phones switch the shared grid to portrait). I did not run the 816B model; MLX, Hugging Face and mlx-lm commands are taken from Meta's cookbook, the MLX distributed docs, the Hugging Face CLI guide and mlx-lm's SERVER.md.blog/posts.json(new first entry)blog/posts/how-to-watch-a-muse-spark-open-server-on-two-mac-studios-from-your-phone.htmlpublic/blog/banners/how-to-watch-a-muse-spark-open-server-on-two-mac-studios-from-your-phone.webp(1200x630)2026-10-23: /blog/how-to-watch-claude-code-wait-out-a-usage-limit-from-your-phone/
CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS, so unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) notices a usage limit that was lifted before its reset; 2.1.301 (2026-10-15) added a cap on waiting for a far-off reset. Taken from Anthropic's changelog and environment variable reference.shell --name overnight-pytest claude "..."because the wrapped program gets the launching environment (cmd/shell/handoff.go,background_unix.go; password kept out since 0.24.1);shell list;shell authandshell permissions <ID> --summaries=true, and a callout that a Claude Code summary is published only after a finished turn (session_summary.goskips theworkingstate;summary_claude.gosets it fromend_turnor an interrupt), so a one-prompt run shows "No summary yet" until it ends; the card's long press, state label and age (app/src/components/SessionSummaryHover.tsx); reading the screen from the phone (mobile page: key controls, Ctrl-D, 80x40 grid);caffeinate -i/systemd-inhibit --what=sleeparoundshell --foreground ... --auto-close tomorrow 08:00 claude ...(multi-token parse checked inautoclose.go), and SIGTERM to the process group then SIGKILL after 2 s on Unix for both the deadline andshell kill(session_unix.go,process_unix.go,sessions_unix.go); what the setup does not do; and a Claude CodeStopFailurehook publishing over Pilot pub/sub as a suggestion.blog/posts.json(new first entry)blog/posts/how-to-watch-claude-code-wait-out-a-usage-limit-from-your-phone.htmlpublic/blog/banners/how-to-watch-claude-code-wait-out-a-usage-limit-from-your-phone.webp(1200x630)2026-10-24: /blog/how-to-see-the-images-codex-generates-when-you-watch-it-from-a-browser/
KITTY_WINDOW_ID,GHOSTTY_RESOURCES_DIR,WEZTERM_VERSION,TERM_PROGRAM, iTerm2 3.6+), read in itspets/image_protocol.rsandterminal-detectioncrate at the release tag.TERM, but leavesTERM_PROGRAMand terminal-specific variables (cmd/shell/main.go,handoff.go,session_unix.go); checking those variables, thenenv -u ... shell --name posters --files-root "${CODEX_HOME:-$HOME/.codex}/generated_images" codex(Codex saves to$CODEX_HOME/generated_images/<session>/<call>.png, from itsext/image-generationsource); a callout never to set the root to~/.codex(auth.json, config, history; the Files listing includes dot files); opening the PNG from the Files panel (folders first, case-insensitive name order, 16 MiB preview and 128 MiB download caps, MIME type from the extension;cmd/shell/shared_files.go,web/relay-files-ui.ts); a narrower--read-only --files-root ./reviewsession for a teammate, with copies rather than symlinks (os.Root, symlinks skipped in listings);shell attach,shell killandshell password rotate; what the setup does not do (no inline images, no notification, nothing outside the root, Windows not covered); and Pilot'spilotctl send-filefor handing the file to another agent.blog/posts.json(new first entry)blog/posts/how-to-see-the-images-codex-generates-when-you-watch-it-from-a-browser.htmlpublic/blog/banners/how-to-see-the-images-codex-generates-when-you-watch-it-from-a-browser.webp(1200x630)Verification
Run from the repository root on this branch as it now stands (all eight posts;
git merge upstream/mainreported it already up to date):python3 ../tools/lint_post.py how-to-see-the-images-codex-generates-when-you-watch-it-from-a-browser: passed (1,796 words including code blocks, 26 links: 17 outside across 9 sites, 2 to pilotprotocol.network)python3 ../tools/check_links.py blog/posts/how-to-see-the-images-codex-generates-when-you-watch-it-from-a-browser.html: 26 links, 26 ok, 0 blocked, 0 deadnpx vitest run tests/blog.test.ts: 1 file, 15 tests passednode scripts/test-landing-seo.mjs: passednpm run build:web: succeededChecks for the earlier posts, run when each was added:
Statements about shell in the 2026-10-24 post were checked against help.go (top-level help, start, files, attach, list, kill, password topics and the reference), README.md (0.25.0), docs/content.json (files and security entries),
cmd/shell/main.go,handoff.go,session_unix.go,shared_files.go,web/relay-files-ui.ts,web/relay-files.tsand the app and root package.json files (no xterm image addon);cmd/shellandwebfile sharing are unchanged since v0.25.0, so the behaviour described has shipped. Claims about Codex come from the 0.164.0 release notes, PR openai/codex#54216 and the Codex source atrust-v0.164.0(tui/src/pets/image_protocol.rs,terminal-detection/src/lib.rs,tui/src/app/owned_transcript.rs,tui/src/history_cell/patches.rs,ext/image-generation/src/artifact.rs,app-server/src/extensions.rs, the sample imagegen skill), with OpenAI's authentication docs forCODEX_HOMEandauth.json; terminal protocol claims from the kitty graphics protocol spec, DEC's VT300 manual, ECMA-48 and xterm.js's parser and image addon README. Statements about shell in the 2026-10-23 post were checked against help.go (top-level help, start, list, auth, permissions, kill, e2ee topics and the reference), README.md (0.25.0), CHANGELOG.md (0.24.1 and 0.25.0), docs/summaries.md, docs/content.json (mobile and reliability pages),cmd/shell/handoff.go,background_unix.go,autoclose.go,session_summary.go,summary_claude.go,session_unix.go,process_unix.go,sessions.go,sessions_unix.goandapp/src/components/SessionSummaryHover.tsx; nothing described comes from the Unreleased section. Claims about Claude Code come from its changelog (2.1.301, 2.1.305), environment variable reference, error guide and hooks reference; claims about Pilot pub/sub from pilotprotocol.network/docs/pubsub. Statements about shell in the 2026-10-22 post were checked against help.go (top-level help, start, auth, list, ls, kill, e2ee topics and the reference), README.md, docs/content.json (app and mobile pages),cmd/shell/main.go,autoclose.go,account_sessions.go,sessions.go,session_link.go,session_output.go,session_unix.goandprocess_unix.go;cmd/shellandinternalare unchanged since v0.25.0, and the compactshell lsformat and machine-gone rule are in the v0.25.0 tag, so the behaviour described has shipped. Claims about Muse Spark Open come from Meta's research announcement, developer guide and Mac cookbook, the Hugging Face model page, and Apple's MLX distributed inference post, with MacStories and Gigazine for press coverage. Statements about shell in the 2026-10-21 post were checked against help.go (top-level help, start, attach, list, permissions, kill, password, e2ee topics and the reference), README.md, CHANGELOG.md (0.24.1 and 0.25.0), docs/summaries.md, docs/content.json (mobile, app and refstream pages),cmd/shell/main.go,process_unix.go,session_output.go,sessions.go,session_unix.goandweb/main.ts;cmd/shell,internaland docs/summaries.md are unchanged since v0.25.0, so the behaviour described has shipped. Claims about the incidents come from OpenAI's report and its misalignment reports index, with Al Jazeera for the Yampolskiy quote; git behaviour from the git, git-status and git-diff manuals; Codex's default sandbox from OpenAI's sandbox documentation. Statements about shell in the 2026-10-20 post were checked against help.go (start, list, ls, auth, password, e2ee topics and the reference), docs/content.json (platforms and e2ee pages), README.md,cmd/shell/main.go,sessions.go,background_unix.go,session_output.go,session_unix.go,process_unix.go,account_sessions.go,web/main.tsandapp/srcat this commit;cmd/shellandinternalare unchanged since v0.25.0, so the behaviour described has shipped. Claims about Copilot CLI come from the v1.0.100 release notes and GitHub's programmatic reference and how-to pages. Statements about shell in the 2026-10-19 post were checked against help.go (start and password topics),cmd/shell/handoff.go,handoff_opencode.go,session_output.go,sessions.go,background_unix.go,main.goandshared/session-capacity.ts; claims about OpenCode come from its v1.19.1 release notes, opencode.ai's changelog, CLI and permissions docs, and the v1.19.3 source. Statements about shell in the 2026-10-18 post were checked against help.go, docs/content.json (security and e2ee pages), CHANGELOG.md (0.24.1),cmd/shell/session_unix.go,cmd/shell/password_handoff.goandcmd/shell/session_output.go; claims about OpenCode come from opencode.ai's TUI, CLI and providers docs. Claims for the 2026-10-17 post were checked against help.go, docs/content.json,cmd/shell/attach_unix.go,cmd/shell/session_unix.go,worker/index.tsandweb/main.ts, and the Codex 0.163.0 release notes and PRs openai/codex#51812 and #52273.Access and privacy
No product change. This adds content only. The session IDs, OpenCode and Codex session IDs, image file names, prompts, passwords, paths, session names, host names, script names, commit and file names and the links shown in examples and drawn on the covers are made up.
Rollout
Website only. The posts go live after the next deploy. No CLI or host update is needed.
🤖 Generated with Claude Code