Skip to content

content: Launch post — Enroll Hosts Without a Local Browser - #1105

Closed
frances720 wants to merge 2 commits into
mainfrom
articles/2026-10-05-browserless-host-enrollment
Closed

frances720 wants to merge 2 commits into
mainfrom
articles/2026-10-05-browserless-host-enrollment

Conversation

@frances720

Copy link
Copy Markdown
Contributor

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).

# Entry Decision Reason
1 Enroll hosts that have no browser — promptless-host-runtime enroll --device; approve from another device; no local browser or inbound port required QUALIFIES Adds new capability previously impossible for a non-trivial segment: teams with SSH-only servers, containers, and CI hosts can now enroll PIG without workarounds
2 Find suggestions by source PR number — Search suggestions list with source-pr:123 to find suggestions a source PR triggered SKIP Expanded search qualifier on an existing capability; useful but does not open a genuinely new workflow

2 commits in window. 2 entries considered, 1 qualified.

Covered entry (full text)

Enroll hosts that have no browser: You can now enroll a PIG host you reach over SSH, or any other host without a local browser. Run the host runtime's enroll command with --device, then open the printed approval link on another device and approve the host there. See Enroll your hosts.

Source: commit f595e04.

PR(s) researched

File

src/content/blog/product-updates/browserless-host-enrollment.mdx

AI-generated draft — needs human review before publishing.


🤖 Generated with Claude Code

https://claude.ai/code/session_01T18UD1RtehosfNWscu6u75


Generated by Claude Code

Generated by launch-post skill.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T18UD1RtehosfNWscu6u75
@vercel

vercel Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
promptless-docs Ready Ready Preview Oct 5, 2026 2:24pm UTC

Request Review

@promptless promptless Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

  1. Release state (blocking for publish). Both source PRs behind --device are still open and undeployed: the client flag in Promptless/pig-toolchain#98 and the backend device-sessions endpoint 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 released pig plugin, enroll --device won't work for readers, so this post shouldn't merge before then. When it does go out, update subtitle/date to the real publish date; right now they say September 28.
  2. Duplicate launch post. #1104 (headless-host-enrollment.mdx) announces the same --device feature 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.
  3. Command is wrong (correctness). The post presents promptless-host-runtime as a global command. The guide says it ships inside the pig plugin and is not installed as a global terminal command (details inline).
  4. 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 --device

Also, "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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"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

Copy link
Copy Markdown
Contributor Author

Pushed a fix commit (1e8129c) addressing the bot's correctness findings:

  • Removed promptless-host-runtime as a global command invocation from the opening and the code block. The step is now described in prose, linking to the docs for the actual invocation.
  • Fixed "OAuth authorization step" → "browser on the host to approve enrollment and complete a local loopback callback."
  • Removed the unsupported "fails before it can do anything useful" claim.
  • Removed the "manually carrying credentials" workaround (contradicts the guide's prohibition on copying host credentials between machines). Kept only the port-forwarding example.
  • CI runners bullet now reads "that run Claude Code or Codex."
  • "How to use it" now requires the latest pig plugin and trace ingestion enabled in hub.yaml before adding --device.

On the duplicate (#1104): The bot flagged that PR #1104 (headless-host-enrollment.mdx) covers the same feature. That's a maintainer call — one of the two should be closed. I'm noting it here so the reviewer can decide which to keep.

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 subtitle and date fields will need updating to the real publish date at that point.


Generated by Claude Code

@InlinePizza

Copy link
Copy Markdown
Contributor

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.

This branch was successfully deployed

1 active deployment
Preview — 1e8129c9 Deployed Oct 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants