Docs
Configuration
TRW works with sensible defaults, but one setting matters more than any other on modern installs: target_platforms. That list tells TRW which client targets to record for this repo. Dedicated integrations write native client surfaces where the installer provides them; retired identifiers such as Aider are rejected rather than recorded as configuration targets.
Common config changes
Target more than one client
List every selected client under target_platforms. TRW writes each one’s native files and automation; which surfaces appear differs by client.
Record the checks your project actually runs
Run tests, builds, lint, and type checks with project-native commands first. Then pass their scope, counts, failures, and static-check state to trw_build_check.
Connect to the hosted platform only when you want to
Platform sync is optional. Local runs, checkpoints, and learnings work without it. Add platform_url only when needed and supply the key through TRW_PLATFORM_API_KEY or .trw/credentials.yaml.
Client profiles
The installer selects these profiles for you, but you can always edit target_platforms later. Every current profile has a dedicated integration, but the mix of native files and automation differs per client. The matrix also lists the retired Aider identifier, which current installs reject.
| Client | Support shape | What TRW writes | Support notes | Common workflow |
|---|---|---|---|---|
Claude Code End-to-end TRW integration for local CLI workflows that lean on hooks and durable instructions. | Hooks & agents | CLAUDE.md, .claude/INSTRUCTIONS.md, .claude/hooks/, .mcp.json | Hooks, skills, MCP config, and portable workstream guidance | Local CLI workflows that want repo-native hooks, agents, and guidance |
Cursor IDE TRW translated into Cursor’s IDE rules, hooks, MCP config, and editor-first automation. | IDE-native | .cursor/rules/, .cursor/mcp.json, .cursor/hooks/, .cursor/skills/ | IDE rules plus translated hooks, commands, skills, and subagents | Interactive editor-first workflows inside Cursor |
Cursor CLI TRW adapted for headless Cursor runs where explicit permissions and CLI-safe defaults matter. | Headless-safe | AGENTS.md, .cursor/cli.json, .cursor/hooks.json, .cursor/mcp.json | Headless-safe permissions and CLI hook subset | cursor-agent, CI, and scripted terminal workflows |
OpenCode TRW translated into OpenCode’s instruction, command, and agent surfaces. | Command-first | opencode.json, .opencode/INSTRUCTIONS.md, .opencode/commands/, .opencode/agents/ | Curated commands, agents, and instruction-first guidance | Terminal workflows built around commands and repo-local instructions |
Codex CLI TRW adapted to Codex’s workflow and context constraints without changing the core loop. | Codex-native | .codex/config.toml, .codex/INSTRUCTIONS.md, .codex/agents/, optional .codex/hooks.json | Codex-specific config, agents, curated skills, optional hooks | Codex sessions that want tighter context control and repo-local guidance |
GitHub Copilot CLI TRW translated into GitHub-native repo instructions, hooks, and agent surfaces. | GitHub-native | .mcp.json, .github/copilot-instructions.md, .github/instructions/, .github/hooks/, .github/agents/ | Project MCP config, repo instructions, path-scoped guidance, hooks, agents, and skills | GitHub-native repos adopting agent workflows and path-scoped guidance |
Antigravity CLI TRW writes Antigravity-native instructions, MCP registration, subagents, and supported hooks. | Antigravity-native | ANTIGRAVITY.md, .antigravitycli/settings.json, .antigravitycli/agents/, .antigravitycli/hooks.json | Native instructions, MCP config, subagents, and supported before-tool hooks | New Google CLI workflows that need large context and native agent surfaces |
Aider The Aider target was retired because it never had a native adapter. Current installation rejects the identifier. | Retired; manual only | Legacy identifier retained for cleanup; no Aider-native file is generated | No dedicated Aider integration; use explicit local CLI operations | Existing manual workflows that do not select Aider during TRW initialization |
Claude Code
End-to-end TRW integration for local CLI workflows that lean on hooks and durable instructions.
Cursor IDE
TRW translated into Cursor’s IDE rules, hooks, MCP config, and editor-first automation.
Cursor CLI
TRW adapted for headless Cursor runs where explicit permissions and CLI-safe defaults matter.
OpenCode
TRW translated into OpenCode’s instruction, command, and agent surfaces.
Codex CLI
TRW adapted to Codex’s workflow and context constraints without changing the core loop.
GitHub Copilot CLI
TRW translated into GitHub-native repo instructions, hooks, and agent surfaces.
Antigravity CLI
TRW writes Antigravity-native instructions, MCP registration, subagents, and supported hooks.
Aider
The Aider target was retired because it never had a native adapter. Current installation rejects the identifier.
Example config
task_root: docs
runs_root: .trw/runs
build_check_coverage_min: 90.0
source_package_name: trw_mcp
source_package_path: trw-mcp/src
tests_relative_path: trw-mcp/tests
target_platforms:
- "cursor-ide"
- "codex"
- "antigravity-cli"
platform_url: "https://api.trwframework.com"
platform_telemetry_enabled: falseThe installer rewrites this file carefully. If you re-run install after choosing a new client mix, TRW updates target_platforms without clobbering the rest of your repo-local configuration.
Core fields
| Field | Type | Default | What it controls |
|---|---|---|---|
| target_platforms | list[str] | ["claude-code"] | Client targets selected for this repo. Every current profile has a dedicated integration that keeps its native surfaces in sync; retired identifiers are dropped with a warning instead of being recorded. |
| response_format | "yaml" | "json" | profile-derived | MCP response format. Full IDE profiles often use JSON for tool wiring; others prefer YAML. |
| task_root | str | docs | Root directory used for PRDs and task artifacts. |
| runs_root | str | .trw/runs | Independent root directory for tracked run artifacts. |
| build_check_coverage_min | float | 85.0 | Coverage threshold used by configured phase-gate validation; TRW does not run the coverage command. |
| debug | bool | false | The single verbosity toggle. Turns on DEBUG-level logging plus the .trw/logs/ file sink, identically for every client — no generated MCP config passes a --debug flag. |
| platform_url | str | "" | Primary hosted platform endpoint for sync and telemetry. |
| platform_urls | list[str] | [] | Endpoints sync fans out to. When telemetry or an API key is configured, the installer rewrites this block to the endpoint it resolved. |
| platform_api_key | SecretStr | "" | Holds the resolved credential at runtime, but is never read from config.yaml — a key left there is dropped at load. Supply it via TRW_PLATFORM_API_KEY or .trw/credentials.yaml. |
| platform_telemetry_enabled | bool | false | Master opt-in for usage telemetry. Gates every off-machine telemetry send; when false, no tool-call events are transmitted. |
| learning_sharing_enabled | bool | false | Separate opt-in for publishing learning content (summary and detail, PII-redacted) for cross-project recall. Independent of usage telemetry. |
| user_tier_enabled | bool | false | Opt-in machine-local user memory tier at ~/.trw, shared across every repo on the box. Off keeps single-store, project-only behavior. |
Environment variable overrides
| Variable | Maps to | Use it for |
|---|---|---|
| TRW_TARGET_PLATFORMS | target_platforms | Override selected clients with a JSON list such as ["cursor-ide","codex"]. |
| TRW_TASK_ROOT | task_root | Override where PRDs and task artifacts are stored. |
| TRW_BUILD_CHECK_COVERAGE_MIN | build_check_coverage_min | Override the build gate coverage threshold. |
| TRW_PLATFORM_URL | platform_url | Override the primary platform URL. |
| TRW_PLATFORM_API_KEY | platform_api_key | Inject the platform API key without writing it into the repo. |
| TRW_RESPONSE_FORMAT | response_format | Force yaml or json regardless of the client profile default. |
| TRW_DEBUG | debug | Turn on DEBUG logging for one session without editing config.yaml. TRW_LOG_LEVEL takes precedence over it. |
Next: tools and troubleshooting
Once configuration feels clear, learn which tools the runtime actually calls and how to debug client-specific setup issues.