Skip to content

feat(cli): add passthrough flags for run and agent commands#56

Merged
jmgilman merged 3 commits intomasterfrom
feat/devcontainer-cli-fallback
Jan 5, 2026
Merged

feat(cli): add passthrough flags for run and agent commands#56
jmgilman merged 3 commits intomasterfrom
feat/devcontainer-cli-fallback

Conversation

@jmgilman
Copy link
Collaborator

@jmgilman jmgilman commented Jan 5, 2026

Summary

  • Simplify runtime flags from map[string]any to []string in config
  • Add hjk run <branch> -- <flags> to pass flags directly to container runtime
  • Add hjk agent <branch> <agent> -- <flags> to pass flags directly to agent CLI
  • Config flags are merged with CLI flags (config first, CLI appended)
  • Fix devcontainer exec to stream stdout/stderr for non-interactive commands
  • Fix tmux escape sequence leak after short-lived sessions by draining stdin with timeout
  • Remove internal/flags package (no longer needed with simplified flag handling)

Test plan

  • Verify hjk run feat/test -- --memory=4g passes flags to container runtime
  • Verify hjk agent feat/test claude -- --dangerously-skip-permissions passes flags to agent
  • Verify config file flags are merged with CLI flags
  • Verify hjk exec feat/test --no-mux -- echo hello shows output correctly
  • Verify hjk exec feat/test -- echo hello doesn't leak escape sequences

🤖 Generated with Claude Code

jmgilman and others added 2 commits January 4, 2026 21:02
Current behavior:
When devcontainer CLI is not found in PATH, the command fails with an error
message telling users to install it manually.

New behavior:
The CLI resolution now follows a progressive fallback:
1. Check if devcontainer is in PATH
2. Check if devcontainer.path is set in config and binary exists
3. If npm is available, prompt user to install CLI locally
4. Install to ~/.local/share/headjack/devcontainer-cli/ and save path to config

Also extracts the huh-based prompter from internal/auth into a shared
internal/prompt package for reuse across the codebase.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Current behavior:
Runtime flags required complex map[string]any configuration in config
file. No way to pass flags directly via CLI to container runtime or
agent CLIs. Devcontainer exec didn't stream stdout/stderr for
non-interactive commands. Tmux sessions leaked escape sequences after
short-lived commands.

New behavior:
- Runtime flags simplified to []string in config
- `hjk run <branch> -- <flags>` passes flags to container runtime
- `hjk agent <branch> <agent> -- <flags>` passes flags to agent CLI
- Config flags merged with CLI flags (config first, CLI appended)
- Devcontainer exec streams stdout/stderr for non-interactive mode
- Tmux drains stdin with timeout to catch late escape sequences
- Removed internal/flags package (no longer needed)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 5, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
headjack bb7d774 Commit Preview URL

Branch Preview URL
Jan 05 2026, 05:45 PM

@jmgilman jmgilman merged commit c8d4d13 into master Jan 5, 2026
4 checks passed
@jmgilman jmgilman deleted the feat/devcontainer-cli-fallback branch January 5, 2026 18:00
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.

1 participant