Repository navigation
content: Launch post — Enroll Hosts Without a Local Browser - #1105
frances720 wants to merge 2 commits into
Conversation
Generated by launch-post skill. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T18UD1RtehosfNWscu6u75
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Promptless inbound docs review: I checked correctness against Enroll your hosts (merged in #1056) and the source PRs, plus style and frontmatter against the other product-updates posts.
Verdict: comment. Accurate: the ~35-second poll, setup_pending resume, the 15-minute expiry, --host being optional (it defaults to auto), and the troubleshooting pointer. Frontmatter and components match the existing launch posts.
- Release state (blocking for publish). Both source PRs behind
--deviceare still open and undeployed: the client flag in Promptless/pig-toolchain#98 and the backenddevice-sessionsendpoint in Promptless/promptless#5250. #5250 also has a mandatory rollout gate (Service change, backend deploy, then enabling the client). Until both merge and ship in a releasedpigplugin,enroll --devicewon't work for readers, so this post shouldn't merge before then. When it does go out, updatesubtitle/dateto the real publish date; right now they say September 28. - Duplicate launch post. #1104 (
headless-host-enrollment.mdx) announces the same--devicefeature and is open at the same time. Only one should merge, so a maintainer should pick one and close the other. #1104 uses the correct runtime invocation and states the prerequisites, so it's the safer one to keep unless this one is fixed. - Command is wrong (correctness). The post presents
promptless-host-runtimeas a global command. The guide says it ships inside thepigplugin and is not installed as a global terminal command (details inline). - Some claims overstate the change or aren't backed by source (inline).
|
|
||
| Promptless can now enroll PIG hosts that have no local browser. If you're setting up trace collection on an SSH-only server, a containerized build agent, or any host without a desktop environment, you no longer need a workaround to get through enrollment. | ||
|
|
||
| Run `promptless-host-runtime enroll --device`. A link appears in the terminal. Open it on any other device. Promptless does the rest. |
There was a problem hiding this comment.
promptless-host-runtime isn't on the reader's PATH. Enroll your hosts says the runtime "is bundled inside the plugin; it is not installed as a global promptless-host-runtime terminal command." If readers copy this, they'll get command not found. Use the guide's form here, or describe the step without the literal command:
python3 "$PIG_PLUGIN_ROOT/runtime/promptless-host-runtime" enroll --host codex --deviceAlso, "Promptless does the rest" skips the step where a signed-in organization member approves the host.
|
|
||
| ## The problem | ||
|
|
||
| PIG host enrollment has always needed a browser to complete the OAuth authorization step. That works on a developer's workstation, where enrollment and approval happen on the same machine. It breaks on headless infrastructure. |
There was a problem hiding this comment.
"OAuth authorization step" isn't how the source or guide describes it. Standard enrollment is browser approval on the Promptless approval page, completed through a local 127.0.0.1 callback. Suggest: "needed a browser on the host to approve enrollment and complete a local loopback callback."
|
|
||
| PIG host enrollment has always needed a browser to complete the OAuth authorization step. That works on a developer's workstation, where enrollment and approval happen on the same machine. It breaks on headless infrastructure. | ||
|
|
||
| If a host has no browser, the standard enrollment command fails before it can do anything useful. The workarounds all require extra setup: launching a browser session on the remote host, port-forwarding the loopback callback, or running enrollment on a separate machine and manually carrying the resulting credentials back. None of those approaches scale. They're also fragile: a network change or a rebuilt container breaks them, and you repeat the same manual process. |
There was a problem hiding this comment.
Two unsupported claims. Nothing in the source says the standard command "fails before it can do anything useful" on a headless host. And "manually carrying the resulting credentials back" presents as a workaround something the guide forbids ("Do not copy host credentials between machines"). I'd keep only the port-forwarding example.
|
|
||
| Pass `--device` to the `enroll` command: | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Same global-command problem as line 17. Also add a bash language tag to match the guide. Suggested block:
python3 "$PIG_PLUGIN_ROOT/runtime/promptless-host-runtime" enroll --host codex --device|
|
||
| Platform and infrastructure teams who want PIG coverage beyond developer machines. This matters most for: | ||
|
|
||
| - CI runners and build agents that produce behavioral signals alongside test runs |
There was a problem hiding this comment.
PIG only collects traces from native Claude Code and Codex sessions, so a CI runner produces signals only if those agents run on it. Suggest: "CI runners and build agents that run Claude Code or Codex".
|
|
||
| ## How to use it | ||
|
|
||
| Add `--device` to your `enroll` command. No additional configuration is required. Enrollment connects through your existing Promptless account and the host's existing outbound network access. |
There was a problem hiding this comment.
"No additional configuration is required" overstates it. The host still needs a pig release built with trace_ingestion.enabled: true and PROMPTLESS_WORKER_BASE_URL set in the agent's environment, and pig-toolchain#98 says custom installations must also configure hosted_api_base_url. #1104's wording works: "If trace ingestion is already enabled in hub.yaml and the latest pig plugin is installed on the host, add --device…". The same applies to "the same one-command process" on line 60.
- Remove global promptless-host-runtime invocation (not on PATH) - Fix description of enrollment flow: loopback callback, not OAuth - Remove unsupported claim about standard command failing on headless hosts - Remove credential-carrying workaround (contradicts guide) - Remove code block with wrong invocation; describe step in prose - CI runners bullet: add "that run Claude Code or Codex" - How to use it: require latest pig plugin + trace ingestion in hub.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T18UD1RtehosfNWscu6u75
|
Pushed a fix commit (1e8129c) addressing the bot's correctness findings:
On the duplicate (#1104): The bot flagged that PR #1104 ( On the release gate: Both source PRs (promptless#5250 and pig-toolchain#98) are still open. This draft shouldn't merge until both ship; the Generated by Claude Code |
|
Closing: the automated content pipeline is being turned off and these generated drafts will not be merged. The branch is left in place in case anything is worth salvaging. |
Feature
PIG hosts reached over SSH or running without a desktop can now enroll using
--device. Approve the host from any other device; no loopback callback or local browser required.Entries considered this run
Window: 2026-09-28 → 2026-10-05 (7 days).
promptless-host-runtime enroll --device; approve from another device; no local browser or inbound port requiredsource-pr:123to find suggestions a source PR triggered2 commits in window. 2 entries considered, 1 qualified.
Covered entry (full text)
Source: commit f595e04.
PR(s) researched
Promptless/promptless#5250 (backend) +Promptless/pig-toolchaindocs: Document Slack passive channel listening feature #98 (client--deviceflag)File
src/content/blog/product-updates/browserless-host-enrollment.mdxAI-generated draft — needs human review before publishing.
🤖 Generated with Claude Code
https://claude.ai/code/session_01T18UD1RtehosfNWscu6u75
Generated by Claude Code