Files
coder/docs/reference/cli/index.md
T
Dean Sheather e57525002c chore: remove agents experiment flag and mark feature as beta (#24432)
Remove the `ExperimentAgents` feature flag so the Agents feature is
always available without requiring `--experiments=agents`. The feature
is now in beta.

Existing deployments that still pass `--experiments=agents` will get a
harmless "ignoring unknown experiment" warning on startup.

### Changes

**Backend:**
- Remove `RequireExperimentWithDevBypass` middleware from chat and MCP
server routes
- Always include `AgentsAccessRole` in assignable site roles (later
refactored to org-scoped on main; rebase keeps that)
- Always set `AgentsTabVisible = true`, then drop the entire dead
`AgentsTabVisible` metadata pipeline (Go htmlState field,
populateHTMLState goroutine, HTML meta tag, useEmbeddedMetadata
registration, mock); no production consumer reads it. `AgentsNavItem`
already gates on `permissions.createChat`.
- Make `blob:` CSP `img-src` addition unconditional
- Remove `ExperimentAgents` constant, `DisplayName` case, and
`ExperimentsKnown` entry

**CLI:**
- Graduate the agents TUI from `coder exp agents` to `coder agents`
(moved from `AGPLExperimental()` to `CoreSubcommands()`)
- Drop the `agent` alias so it does not collide with the hidden
workspace-agent command
- Rename implementation files `cli/exp_agents_*.go` -> `cli/agents_*.go`
and internal identifiers (`expChatsTUIModel` -> `chatsTUIModel`,
`newExpChatsTUIModel` -> `newChatsTUIModel`, `setupExpAgentsBackend` ->
`setupAgentsBackend`, `startExpAgentsSession` -> `startAgentsSession`,
`expAgentsPtr` -> `agentsPtr`, `expAgentsSession` -> `agentsSession`,
`TestExpAgents*` -> `TestAgents*`). `expClient` (the
`*codersdk.ExperimentalClient` local) is kept; `coderd/exp_chats*.go`
and other still-experimental `cli/exp_*.go` commands are intentionally
untouched.

**Frontend:**
- Remove experiment check from `AgentsNavItem` - render when
`canCreateChat` is true
- Remove `agentsEnabled` experiment check from `WorkspacesPage`, then
gate `chatsByWorkspace` on `permissions.createChat` so users without
chat access don't trigger the per-page DB query (Copilot review
feedback)
- Add `FeatureStageBadge` (beta) next to the Coder logo in the Agents
sidebar (desktop + mobile)

**Docs:**
- Remove experiment flag setup instructions from `early-access.md` and
`getting-started.md` (and rename `early-access.md`'s "Enable Coder
Agents" heading to "Set up Coder Agents", since there is no enablement
step left)
- Update `chats-api.md` and `getting-started.md`'s Chats API note to say
"beta" instead of "experimental"
- `docs/manifest.json`: drop "experimental" from the Chats API sidebar
description
- `make gen` regenerated `docs/reference/cli/agents.md` and the CLI
index
- `scripts/check_emdash.sh`: exclude `cli/testdata/*.golden` and
`enterprise/cli/testdata/*.golden` from the new repo-wide emdash lint,
since serpent emits emdash borders in every generated `--help` golden
file

**Tests:**
- Remove `ExperimentAgents` setup from all test files (14 occurrences
across 7 files)
- Update stale "with the agents experiment" comments in
`coderd/x/chatd/integration_test.go` and `coderd/mcp_test.go`


<img width="1185" height="900" alt="image"
src="https://github.com/user-attachments/assets/b420bc8f-41d6-42c6-abd8-ad572533d651"
/>


> 🤖 Generated by Coder Agents
2026-05-01 01:49:00 +10:00

15 KiB
Generated

coder

Usage

coder [global-flags] <subcommand>

Description

Coder — A tool for provisioning self-hosted development environments with Terraform.
  - Start a Coder server:

     $ coder server

  - Get started by creating a template from an example:

     $ coder templates init

Subcommands

Name Purpose
agents Interactive terminal UI for AI agents.
completion Install or update shell completion scripts for the detected or chosen shell.
dotfiles Personalize your workspace by applying a canonical dotfiles repository
external-auth Manage external authentication
login Authenticate with Coder deployment
logout Unauthenticate your local session
netcheck Print network debug information for DERP and STUN
notifications Manage Coder notifications
organizations Organization related commands
port-forward Forward ports from a workspace to the local machine. For reverse port forwarding, use "coder ssh -R".
publickey Output your Coder public key used for Git operations
reset-password Directly connect to the database to reset a user's password
secret Manage secrets
state Manually manage Terraform state to fix broken workspaces
task Manage tasks
templates Manage templates
tokens Manage personal access tokens
users Manage users
version Show coder version
autoupdate Toggle auto-update policy for a workspace
config-ssh Add an SSH Host entry for your workspaces "ssh workspace.coder"
create Create a workspace
delete Delete a workspace
favorite Add a workspace to your favorites
list List workspaces
logs View logs for a workspace
open Open a workspace
ping Ping a workspace
rename Rename a workspace
restart Restart a workspace
schedule Schedule automated start and stop times for workspaces
show Display details of a workspace's resources and agents
speedtest Run upload and download tests from your machine to a workspace
ssh Start a shell into a workspace or run a command
start Start a workspace
stat Show resource usage for the current workspace.
stop Stop a workspace
unfavorite Remove a workspace from your favorites
update Will update and start a given workspace if it is out of date. If the workspace is already running, it will be stopped first.
whoami Fetch authenticated user info for Coder deployment
support Commands for troubleshooting issues with a Coder deployment.
server Start a Coder server
provisioner View and manage provisioner daemons and jobs
boundary Network isolation tool for monitoring and restricting HTTP/HTTPS requests
features List Enterprise features
licenses Add, delete, and list licenses
groups Manage groups
prebuilds Manage Coder prebuilds
external-workspaces Create or manage external workspaces
aibridge Manage AI Bridge.

Options

--url

Type url
Environment $CODER_URL

URL to a deployment.

--debug-options

Type bool

Print all options, how they're set, then exit.

--token

Type string
Environment $CODER_SESSION_TOKEN

Specify an authentication token. For security reasons setting CODER_SESSION_TOKEN is preferred.

--no-version-warning

Type bool
Environment $CODER_NO_VERSION_WARNING

Suppress warning when client and server versions do not match.

--no-feature-warning

Type bool
Environment $CODER_NO_FEATURE_WARNING

Suppress warnings about unlicensed features.

--header

Type string-array
Environment $CODER_HEADER

Additional HTTP headers added to all requests. Provide as key=value. Can be specified multiple times.

--header-command

Type string
Environment $CODER_HEADER_COMMAND

An external command that outputs additional HTTP headers added to all requests. The command must output each header as key=value on its own line.

--force-tty

Type bool
Environment $CODER_FORCE_TTY

Force the use of a TTY.

-v, --verbose

Type bool
Environment $CODER_VERBOSE

Enable verbose output.

--disable-direct-connections

Type bool
Environment $CODER_DISABLE_DIRECT_CONNECTIONS

Disable direct (P2P) connections to workspaces.

--disable-network-telemetry

Type bool
Environment $CODER_DISABLE_NETWORK_TELEMETRY

Disable network telemetry. Network telemetry is collected when connecting to workspaces using the CLI, and is forwarded to the server. If telemetry is also enabled on the server, it may be sent to Coder. Network telemetry is used to measure network quality and detect regressions.

--client-tls-ca-file

Type string
Environment $CODER_CLIENT_TLS_CA_FILE

Path to a CA certificate file to trust for API and DERP connections.

--client-tls-cert-file

Type string
Environment $CODER_CLIENT_TLS_CERT_FILE

Path to a client certificate file for mTLS authentication with API and DERP. Requires --client-tls-key-file.

--client-tls-key-file

Type string
Environment $CODER_CLIENT_TLS_KEY_FILE

Path to a client private key file for mTLS authentication with API and DERP. Requires --client-tls-cert-file.

--use-keyring

Type bool
Environment $CODER_USE_KEYRING
Default true

Store and retrieve session tokens using the operating system keyring. This flag is ignored and file-based storage is used when --global-config is set or keyring usage is not supported on the current platform. Set to false to force file-based storage on supported platforms.

--global-config

Type string
Environment $CODER_CONFIG_DIR
Default ~/.config/coderv2

Path to the global coder config directory.