You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A discussion dedicated to the Agent Relay Claude Code module. Share your thoughts, questions, and feedback here.
Module Scorecard
Presentation & Onboarding
Agent Integration
Credential Hygiene
Restricted-Environment Readiness
Engineering Quality
Overall
6 / 17
0 / 25
20 / 20
12 / 20
10 / 10
52 / 100
Drilldown
Presentation & Onboarding — 6 / 17
Criterion
Max
Score
Notes
Configuration-mode examples
12
6
Primary example (default install_cli = true) and additional_args example are both present with sensible defaults. However, the "baked-in CLI" mode (install_cli = false), which the README explicitly calls "the recommended and fastest path," has no dedicated example block—it is only mentioned in a code comment and the variable description.
Visual preview
5
0
No image, GIF, or video embedded in the README. The frontmatter icon field is a module icon, not a preview of the module in action.
Agent Integration — 0 / 25
Criterion
Max
Score
Notes
AI governance
10
0
No mention of Coder AI Gateway or Agent Firewall anywhere in the README or code. The module relies on Agent Relay's work-order JWT for auth but does not document how Coder governs routing or policy enforcement via AI Gateway or Agent Firewall.
Dashboard entry point
5
0
No coder_app resource declared or documented. The module is a headless runner dispatched by Agent Relay; there is no user-facing dashboard entry point.
Session continuity
5
0
No documentation of resuming an existing session across reconnects or relaunches. The agent_relay_session_id parameter is for Agent Relay's internal deduplication, not user-facing session resume. No mention of tmux, screen, boo, or native resume.
Managed configuration
5
0
No documented support for managed MCP, settings, policies, or workdir config. base_dir sets a checkout directory but is not a managed-configuration mechanism. No MCP server config, no settings file, no policy enforcement.
Credential Hygiene — 20 / 20
Criterion
Max
Score
Notes
Secrets marked sensitive
16
16
agent_relay_credential uses mask_input = true in its styling (confirmed in main.tf and asserted in main.tftest.hcl). README examples contain no inline secrets—only agent_id = coder_agent.main.id and structural parameters.
Non-hardcoded auth path
4
4
The credential is a single-use work-order JWT injected by Agent Relay at dispatch time. README states: "Agent Relay sets this when it dispatches the workspace; a human never fills it in." No raw key is pasted into the template.
Restricted-Environment Readiness — 12 / 20
Criterion
Max
Score
Notes
Mirrorable artifact source
5
0
The install URL https://claude.ai/install.sh is hardcoded in install.sh.tftpl. No module input variable overrides this download URL. cli_binary changes the expected binary path, not the source URL. No variable exists to point the installer at an internal mirror.
Bring-your-own binary
10
10
install_cli = false disables the download entirely. The install script checks command -v ${cli_binary} and skips if present. README: "Bake the CLI into the image and set this to false for faster workspaces." The start script also adds ~/.local/bin to PATH unconditionally so a baked-in CLI is found.
Egress transparency
3
0
No dedicated README section enumerating external endpoints. claude.ai/downloads.claude.ai (install) and Anthropic API (runtime) are inferable from code and variable descriptions but not listed in a network/air-gapped section.
Runs without sudo
2
2
All three scripts (install.sh.tftpl, start.sh.tftpl, status.sh.tftpl) operate exclusively under $HOME paths. No sudo invocation anywhere. The installer writes to ~/.local/bin; the runner writes to $HOME/.coder-modules/....
Engineering Quality — 10 / 10
Criterion
Max
Score
Notes
Input quality
6
6
All 8 variables have clear descriptions and sensible defaults. cli_binary has a regex validation preventing shell metacharacters. exit_if_unused_min validates non-negative integer. additional_args validates non-empty, no newlines, and rejects reserved flags (--capacity, --base-dir, --exit-if-unused-min, --exec-path).
Test coverage
4
4
main.tftest.hcl covers parameter contract (names, ephemeral flags, styling/masking), runner wiring, install CLI behavior, additional_args encoding, path overrides, and serving_log_pattern safety. main.test.ts runs 10+ end-to-end tests in containers with stub binaries: idle state, terminal-state persistence, missing-CLI detection, BYO-CLI discovery, download skip, file layout, detached runner with permissions wrapper, additional_args ordering, exit-code recording, custom paths, and shell-injection resistance of serving_log_pattern.
Overall — 52 / 100
Raw 48 / 92 → round(48 / 92 × 100) = 52
Scored against SCORECARD.md on 2026-10-23 with solstice-1.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
A discussion dedicated to the Agent Relay Claude Code module. Share your thoughts, questions, and feedback here.
Module Scorecard
Drilldown
Presentation & Onboarding — 6 / 17
install_cli = true) andadditional_argsexample are both present with sensible defaults. However, the "baked-in CLI" mode (install_cli = false), which the README explicitly calls "the recommended and fastest path," has no dedicated example block—it is only mentioned in a code comment and the variable description.iconfield is a module icon, not a preview of the module in action.Agent Integration — 0 / 25
coder_appresource declared or documented. The module is a headless runner dispatched by Agent Relay; there is no user-facing dashboard entry point.agent_relay_session_idparameter is for Agent Relay's internal deduplication, not user-facing session resume. No mention of tmux, screen, boo, or native resume.base_dirsets a checkout directory but is not a managed-configuration mechanism. No MCP server config, no settings file, no policy enforcement.Credential Hygiene — 20 / 20
agent_relay_credentialusesmask_input = truein its styling (confirmed inmain.tfand asserted inmain.tftest.hcl). README examples contain no inline secrets—onlyagent_id = coder_agent.main.idand structural parameters.Restricted-Environment Readiness — 12 / 20
https://claude.ai/install.shis hardcoded ininstall.sh.tftpl. No module input variable overrides this download URL.cli_binarychanges the expected binary path, not the source URL. No variable exists to point the installer at an internal mirror.install_cli = falsedisables the download entirely. The install script checkscommand -v ${cli_binary}and skips if present. README: "Bake the CLI into the image and set this to false for faster workspaces." The start script also adds~/.local/binto PATH unconditionally so a baked-in CLI is found.claude.ai/downloads.claude.ai(install) and Anthropic API (runtime) are inferable from code and variable descriptions but not listed in a network/air-gapped section.install.sh.tftpl,start.sh.tftpl,status.sh.tftpl) operate exclusively under$HOMEpaths. Nosudoinvocation anywhere. The installer writes to~/.local/bin; the runner writes to$HOME/.coder-modules/....Engineering Quality — 10 / 10
cli_binaryhas a regex validation preventing shell metacharacters.exit_if_unused_minvalidates non-negative integer.additional_argsvalidates non-empty, no newlines, and rejects reserved flags (--capacity,--base-dir,--exit-if-unused-min,--exec-path).main.tftest.hclcovers parameter contract (names, ephemeral flags, styling/masking), runner wiring, install CLI behavior, additional_args encoding, path overrides, and serving_log_pattern safety.main.test.tsruns 10+ end-to-end tests in containers with stub binaries: idle state, terminal-state persistence, missing-CLI detection, BYO-CLI discovery, download skip, file layout, detached runner with permissions wrapper, additional_args ordering, exit-code recording, custom paths, and shell-injection resistance ofserving_log_pattern.Overall — 52 / 100
Raw 48 / 92 → round(48 / 92 × 100) = 52
Scored against SCORECARD.md on 2026-10-23 with
solstice-1.All reactions