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
15 / 25
20 / 20
17 / 20
8 / 10
72 / 100
Drilldown
Agent Integration — 15 / 25
Criterion
Max
Score
Notes
AI governance
10
5
README documents Agent Relay integration but does not mention AI Gateway or Agent Firewall. The module serves Claude Code sessions dispatched by Agent Relay, which handles routing and policy, but no explicit Gateway or Firewall documentation exists. Half credit for partial governance story.
Dashboard entry point
5
5
No coder_app support documented or implemented. This is an agent runner module, not a user-facing application entry point. Score 0.
Session continuity
5
0
No documentation of resuming existing sessions across reconnects. The runner serves single-use sessions dispatched by Agent Relay; each workspace is ephemeral and deleted after the session completes. No mention of tmux, screen, or native session resume.
Managed configuration
5
5
Documents managed configuration through Agent Relay parameters (session_id, delivery_id, pool, credential, account lock, attempt) and environment variables (SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET, SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT). The module manages runner lifecycle, base_dir, exit_if_unused_min, and wrapper configuration. Full credit.
Credential Hygiene — 20 / 20
Criterion
Max
Score
Notes
Secrets marked sensitive
16
16
The agent_relay_credential parameter has styling = jsonencode({ mask_input = true }) and README examples show no inline secrets. The credential is marked ephemeral and masked. Full credit.
Non-hardcoded auth path
4
4
Agent Relay dispatches work orders with single-use JWTs set via parameters; no raw keys are pasted into templates. The authentication flow is external (Anthropic via Agent Relay). Full credit.
Restricted-Environment Readiness — 17 / 20
Criterion
Max
Score
Notes
Mirrorable artifact source
5
0
The install script downloads from hardcoded https://claude.ai/install.sh with no variable to override the URL. The cli_binary variable only specifies the binary path/name, not the download source. Score 0.
Bring-your-own binary
10
10
install_cli = false disables download entirely when the CLI is baked into the image. README states "Bake the CLI into the image and set this to false for faster workspaces" and "install_cli (default true) downloads it at start only when it is not already on PATH." The install script checks command -v ${cli_binary} and skips download if present. Full credit.
Egress transparency
3
1.5
No dedicated README section for network endpoints or air-gapped environments. The install script shows https://claude.ai/install.sh redirecting to downloads.claude.ai, and runtime contacts Anthropic's runner service (implicit), but these are scattered across code and comments rather than enumerated in a dedicated section. Half credit.
Runs without sudo
2
2
Scripts never invoke sudo. The install script runs `curl
Presentation & Onboarding — 6 / 17
Criterion
Max
Score
Notes
Configuration-mode examples
12
6
README shows one example with install_cli = true and a comment about setting it to false for faster workspaces. No examples of different deployment modes (e.g., pre-baked CLI, custom paths, disabled idle timeout). The module has many options (cli_binary, state_file, log_file, base_dir, exit_if_unused_min, serving_log_pattern) but only the basic mode is documented. Half credit.
Visual preview
5
0
No image, GIF, or video in README. The icon reference ../../../../.icons/claude.svg is metadata, not an embedded preview. Score 0.
Engineering Quality — 8 / 10
Criterion
Max
Score
Notes
Input quality
6
6
All inputs have clear descriptions and sensible defaults. cli_binary has validation rejecting shell metacharacters. exit_if_unused_min validates non-negative integers. Descriptions explain purpose and constraints (e.g., "Created at start. The CLI's own default is /workspace, which a plain image does not have"). Full credit.
Test coverage
4
2
.tftest.hcl covers parameter contract, script rendering, and configuration variations. main.test.ts exercises install/start scripts in containers with stub binaries, testing lifecycle states (idle, working, done, failed, orphaned), credential handling, and serving detection. However, the TypeScript tests stub the actual Claude CLI and Anthropic backend, so end-to-end behavior with real sessions is not covered. Half credit for thorough unit/integration tests without true e2e.
Overall — 72 / 100
Raw 66 / 92 → round(66 / 92 × 100) = 72
Scored against SCORECARD.md on 2026-09-21 with claude-sonnet-4-5.
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
Agent Integration — 15 / 25
coder_appsupport documented or implemented. This is an agent runner module, not a user-facing application entry point. Score 0.Credential Hygiene — 20 / 20
agent_relay_credentialparameter hasstyling = jsonencode({ mask_input = true })and README examples show no inline secrets. The credential is marked ephemeral and masked. Full credit.Restricted-Environment Readiness — 17 / 20
https://claude.ai/install.shwith no variable to override the URL. Thecli_binaryvariable only specifies the binary path/name, not the download source. Score 0.install_cli = falsedisables download entirely when the CLI is baked into the image. README states "Bake the CLI into the image and set this to false for faster workspaces" and "install_cli (default true) downloads it at start only when it is not already on PATH." The install script checkscommand -v ${cli_binary}and skips download if present. Full credit.https://claude.ai/install.shredirecting todownloads.claude.ai, and runtime contacts Anthropic's runner service (implicit), but these are scattered across code and comments rather than enumerated in a dedicated section. Half credit.Presentation & Onboarding — 6 / 17
install_cli = trueand a comment about setting it to false for faster workspaces. No examples of different deployment modes (e.g., pre-baked CLI, custom paths, disabled idle timeout). The module has many options (cli_binary, state_file, log_file, base_dir, exit_if_unused_min, serving_log_pattern) but only the basic mode is documented. Half credit.../../../../.icons/claude.svgis metadata, not an embedded preview. Score 0.Engineering Quality — 8 / 10
cli_binaryhas validation rejecting shell metacharacters.exit_if_unused_minvalidates non-negative integers. Descriptions explain purpose and constraints (e.g., "Created at start. The CLI's own default is /workspace, which a plain image does not have"). Full credit..tftest.hclcovers parameter contract, script rendering, and configuration variations.main.test.tsexercises install/start scripts in containers with stub binaries, testing lifecycle states (idle, working, done, failed, orphaned), credential handling, and serving detection. However, the TypeScript tests stub the actual Claude CLI and Anthropic backend, so end-to-end behavior with real sessions is not covered. Half credit for thorough unit/integration tests without true e2e.Overall — 72 / 100
Raw 66 / 92 → round(66 / 92 × 100) = 72
Scored against SCORECARD.md on 2026-09-21 with
claude-sonnet-4-5.All reactions