TRAE CLI
Chorus 0.22.2 이상에서는 TRAE CLI(traecli)에 공식 Chorus 통합이 제공됩니다. TRAE CLI는
Codex의 포크이므로, Chorus는 Codex 플러그인 패키지를 재사용하고 데몬 깨우기에도 Codex App
Server 전송 방식을 사용합니다. TRAE 전용 플러그인을 따로 설치할 필요는 없습니다. TRAE CLI는
지원되는 Chorus 데몬 백엔드이기도 합니다.
테스트를 거친 최소 버전은 traecli 0.209.1입니다. 그보다 오래된 버전은 검증되지 않았습니다.
사전 요구 사항
섹션 제목: “사전 요구 사항”traecli가 설치되어 있고PATH에 있어야 합니다. 버전은traecli --version으로 확인합니다.- TRAE CLI에 로그인되어 있어야 합니다(
traecli login을 실행하거나,traecli를 한 번 시작해 로그인 절차를 마칩니다). TRAE 인증은 Chorus가 처리하지 않습니다. - 접근 가능한 Chorus URL과 에이전트 키. 키는 에이전트 액세스 준비에 따라 만듭니다.
아래의 모든 TRAE 경로는 TRAE_HOME을 따르며, 설정되지 않았으면 ~/.trae를 사용합니다.
Chorus는 TRAE_HOME만 읽고 TRAECLI_HOME은 읽지 않습니다.
통합 설치
섹션 제목: “통합 설치”chorus CLI를 설치한 다음 TRAE CLI를 구성합니다.
npm install --global @chorus-aidlc/choruschorus agents add --agents trae프롬프트가 나오면 Chorus URL과 에이전트 키를 입력합니다. CHORUS_URL과 CHORUS_API_KEY를 미리
내보내 두어도 됩니다. 이 명령은 멱등적이어서 여러 번 실행해도 안전합니다. 수행하는 작업은
다음과 같습니다.
-
traecli가 설치되어 있는지 확인합니다. -
TRAE 자체 플러그인 CLI(
traecli plugin marketplace add …)로chorus-plugins마켓플레이스를 등록합니다. 이미 등록된 마켓플레이스는 다시 추가하지 않습니다. 기존 설치를 갱신할 때는traecli plugin marketplace upgrade chorus-plugins를 실행합니다. -
traecli plugin install chorus@chorus-plugins --yes로 Codex 플러그인 패키지를 설치합니다. 플러그인은$TRAE_HOME/plugins/cache/chorus-plugins/chorus/<version>/에 복사되고,$TRAE_HOME/traecli.toml에[marketplaces.chorus-plugins]와[plugins."chorus@chorus-plugins"]가 추가됩니다. 변경하기 전에 원래traecli.toml을 백업합니다. -
Chorus 인증 정보를 에이전트 유형
trae로~/.chorus/daemon.json에 저장합니다. -
CHORUS_URL,CHORUS_API_KEY,CHORUS_AGENT_PROFILE을$TRAE_HOME/.env에 씁니다(모드0600, 다른 항목은 유지). traecli는 시작할 때 이 파일을 불러오므로, 플러그인 훅, 셸 도구의chorus호출, 네이티브 MCP 모두 따로 내보내지 않아도 사용자의 ID를 사용합니다. -
$TRAE_HOME/traecli.toml에 키를 포함하지 않는[mcp_servers.chorus]블록을 씁니다.[mcp_servers.chorus]url = "https://chorus.example.com/api/mcp"bearer_token_env_var = "CHORUS_API_KEY"traecli는
$TRAE_HOME/.env에 있는 이 변수의 값을Authorization: Bearer <key>헤더로 바꿉니다. 키는traecli.toml에 저장되지 않습니다.
비대화형 설치(CI 또는 샌드박스):
chorus agents add --agents trae \ --url https://chorus.example.com \ --api-key cho_REDACTED --yes앱의 Settings → Setup Guide 마법사에도 같은 단계를 안내하는 TRAE CLI 탭이 있습니다.
.env가 셸보다 우선
섹션 제목: “.env가 셸보다 우선”Codex와 마찬가지로 traecli에서는 $TRAE_HOME/.env의 값이 셸이나 부모 프로세스가 내보낸 같은
이름의 값을 덮어씁니다.
- ID를 바꾸려면
chorus agents add --agents trae를 다시 실행하거나(터미널에서는 기존 프로필을 바꾸기 전에 확인을 요청합니다)$TRAE_HOME/.env를 편집하세요. 다른CHORUS_API_KEY를 내보내도 효과가 없습니다. - 한 데몬에서 여러 Chorus 에이전트가 TRAE 백엔드를 사용한다면 에이전트마다 별도의
TRAE_HOME을 지정하세요.~/.chorus/daemon.json에서 해당 에이전트의env에TRAE_HOME을 설정하고, 그TRAE_HOME을 내보낸 상태로chorus agents add --agents trae를 한 번 실행합니다. 그렇지 않으면 같은 홈을 공유하는 모든 에이전트가 그.env에 저장된 ID로 깨어납니다.
실행 중인 App Server에 구성 적용
섹션 제목: “실행 중인 App Server에 구성 적용”TRAE App Server 데몬이 이미 실행 중이면, 대화형 실행은 새 환경을 반영하도록
traecli app-server daemon restart로 재시작할지 먼저 묻습니다. 재시작하면 다른 TRAE CLI 세션이
중단될 수 있으므로 기본값은 아니요입니다.
- 비대화형 실행,
--yes,CHORUS_DAEMON_HEADLESS=1에서는 재시작하지 않습니다. - 실행 중인 App Server 데몬이 없으면 설정이 새로 시작하지 않습니다. Codex와 달리 데몬이 없을 때
traecli app-server daemon version은 오류로 종료되므로, 설정은 재시작을 연기됨으로 보고합니다 (“daemon state could not be determined”).
Chorus 훅 신뢰
섹션 제목: “Chorus 훅 신뢰”플러그인에는 Chorus 수명 주기 훅이 포함됩니다. SessionStart 체크인과,
chorus_pm_submit_proposal, chorus_submit_for_verify, chorus_admin_verify_task 이후에 검토자를
부르도록 알리는 PostToolUse 알림입니다. traecli는 신뢰한 플러그인 훅만 실행합니다.
traecli를 열고 훅 신뢰 검토에서 chorus@chorus-plugins 훅을 승인하세요. 승인하기 전까지는 자동
체크인도 검토자 알림도 없습니다. 플러그인 업데이트로 훅 정의가 바뀌면 다시 검토하세요.
TRAE CLI와 Codex는 같은 훅 스크립트를 실행합니다. 각 스크립트는 플러그인이 $TRAE_HOME/plugins/
아래에 설치되어 있으면 TRAE로 판단하고 TRAE에 맞는 표현을 사용합니다. 예를 들어 하위 에이전트는
Codex의 spawn_agent가 아니라 Agent 도구로 시작합니다. CHORUS_HOOK_RUNTIME=trae 또는
CHORUS_HOOK_RUNTIME=codex를 설정하면 판단을 강제할 수 있습니다.
원격 시작 활성화
섹션 제목: “원격 시작 활성화”대화형 TRAE CLI 세션에서만 Chorus를 사용한다면 이 섹션은 건너뛰어도 됩니다. 그렇지 않다면
에이전트 런타임 연결을 따라 백엔드로 trae를 선택하세요.
Chorus 데몬 운영으로 상시 온라인 상태를 유지하기 전에 포그라운드에서
연결을 확인합니다.
chorus daemon --agent trae~/.chorus/daemon.json에 { "agent": "trae" }를 넣어 TRAE CLI를 기본값으로 하거나, agents[]의
한 항목에 "agentType": "trae"를 설정할 수도 있습니다.
데몬 동작
섹션 제목: “데몬 동작”깨울 때마다 독립된 traecli app-server --listen stdio:// 프로세스가 하나 시작됩니다.
Codex 백엔드와 같은 App Server 구현을 사용하므로 스레드 재개, 중단,
정리, 권한 모드 매핑도 같습니다. Codex와 다른 점은 다음과 같습니다.
- 실행 파일과 홈: 실행 파일은
traecli(CHORUS_TRAE_PATH로 재정의 가능), 홈은TRAE_HOME(기본값~/.trae), 구성 파일은traecli.toml입니다. - 별도의 로컬 기록: 스레드 ID와 사용량은 Codex와 별도로
~/.chorus/trae-sessions.json과~/.chorus/trae-usage.json에 저장되므로, 스레드가 잘못된 백엔드에서 재개되지 않습니다. - 보고: 깨우기 오류와 데몬 연결은 출처와 클라이언트 유형으로
trae를 보고합니다. Settings → Agents에서는 해당 연결이 TRAE CLI로 표시됩니다. - 인수: 에이전트별
args는 Codex 규칙을 따릅니다. 모델 선택(-m)과 허용된-c key=value설정만 쓸 수 있고, 보호되는 키도 같습니다. TRAE CLI는permission_mode구성 키도 막고,--permission-mode,--worktree,--session-id같은 보호 제어 항목을 추가로 둡니다. 권한 수준은 데몬이 프로토콜로 적용합니다. - 훅: 훅이 신뢰되지 않았다면 깨어난 TRAE 프로세스는 실행되지만
SessionStart체크인은 건너뜁니다.
에이전트의 Chorus 연결을 주입해 포그라운드에서 실행하려면
chorus agents run --name <agent> --type trae를 실행합니다.
제한 모드(--chorus-only)
섹션 제목: “제한 모드(--chorus-only)”--chorus-only에서는 TRAE 샌드박스가 읽기 전용으로 유지되고 대화형 승인이 비활성화됩니다. 읽기
전용 샌드박스는 원래 모든 MCP 도구에 승인을 요구하므로, 그대로라면 Chorus 도구도 거부됩니다.
그래서 traecli.toml에 [mcp_servers.chorus]가 선언되어 있으면, 데몬은 깨운 스레드에 한해
Chorus MCP 서버 하나만 미리 승인합니다.
"config": { "mcp_servers.chorus.default_tools_approval_mode": "approve" }- 샌드박스는 로컬 쓰기와 네트워크 접근을 차단하지만 읽기 전용 셸 명령은 금지하지 않습니다. 데몬은 다른 MCP 서버의 승인 설정을 변경하지 않으며 승인이 필요한 요청은 거부됩니다. Chorus MCP 호출은 키의 권한 내에서 서버 데이터를 변경할 수 있으므로 최소 권한 키를 사용하세요.
- 이 재정의는 구성 파일에 기록되지 않으며, YOLO 모드에서는 보내지 않습니다.
[mcp_servers.chorus]테이블이 선언되어 있지 않으면 보내지 않습니다. 일반[mcp_servers.chorus]테이블 헤더만 감지하며, 인라인 테이블이나 점 표기 키 형식은 감지하지 않습니다. - 쓰기와 관리 도구를 포함한 Chorus 도구는 기본적으로 미리 승인되지만 명시적인 도구별 승인 규칙은 계속 적용됩니다. 서버 측 작업에는 에이전트 키의 권한도 필요하므로 최소 권한 키를 사용하세요.
- 데몬은
[mcp_servers.chorus]가 가리키는 대상을 그대로 신뢰합니다. 이 항목은chorus agents add가 쓴 대로 Chorus MCP 엔드포인트를 가리키도록 유지하세요.
연결 확인
섹션 제목: “연결 확인”traecli를 열고 check in to chorus라고 요청합니다. TRAE는 MCP 서버를 통해 chorus_checkin()을
호출하고 에이전트 ID와 권한을 보고합니다. MCP 서버 목록은 traecli mcp list로 확인합니다.
Chorus 워크플로 스킬($chorus, $develop, $proposal, $yolo 등)은 Codex와 같은 플러그인에서
제공됩니다. 스킬은 Codex의 spawn_agent 도구로 하위 에이전트를 설명하지만, TRAE CLI의 하위
에이전트 도구는 Agent입니다.
데몬 모드에서는 Chorus의 Settings → Agents를 열고 예상한 호스트와 작업 디렉터리가 온라인인지 확인합니다.
업그레이드와 제거
섹션 제목: “업그레이드와 제거”chorus upgrade --plugins는~/.chorus/daemon.json에 구성된trae항목의 Chorus 플러그인을 각 항목의TRAE_HOME에 맞게 갱신합니다. CLI 참조를 참고하세요.- 플러그인이 이미 설치된 상태에서
chorus agents add --agents trae를 다시 실행하면Update installed Chorus plugins to the latest available versions? [y/N]라고 묻습니다.y로 답하면 마켓플레이스를 업그레이드하고 플러그인을 다시 설치하며, 기본값(아니요)이면 설치된 플러그인을 그대로 둡니다.--yes를 붙이거나 비대화형으로 실행하면 묻지 않고 업데이트합니다. 어느 경우든$TRAE_HOME/.env의 인증 정보는 갱신됩니다. chorus agents remove <name|uuid>는~/.chorus/daemon.json에서 에이전트만 제거합니다.~/.trae/.env의CHORUS_*값, 키를 포함하지 않는[mcp_servers.chorus]블록,~/.trae/traecli.toml의chorus@chorus-plugins플러그인 항목은 그대로 남으므로 필요하면 직접 지우세요.
자주 발생하는 문제
섹션 제목: “자주 발생하는 문제”traecli를 찾을 수 없음: TRAE CLI를 설치하고traecli가PATH에 있는지 확인하거나CHORUS_TRAE_PATH를 설정합니다.- Chorus 도구가 없거나
401 Unauthorized:$TRAE_HOME/.env에 키가 없거나, 키가 폐기되었거나, App Server 데몬이 이전 환경으로 계속 실행 중입니다.chorus agents add --agents trae를 다시 실행해 App Server를 재시작하게 하거나, 작업을 저장한 뒤 직접traecli app-server daemon restart를 실행하세요. - 훅이 실행되지 않음: Chorus 훅을 신뢰하고
$TRAE_HOME/traecli.toml에서chorus@chorus-plugins가 활성화되어 있는지 확인합니다. - 데몬이 깨운 에이전트의 ID가 다름: 여러 TRAE 에이전트가 하나의
TRAE_HOME을 공유하고 있습니다. 에이전트마다 별도의 홈을 지정하세요. - 마켓플레이스 업그레이드에서 “is not configured as a Git marketplace” 표시: 로컬 경로
마켓플레이스 소스(
CHORUS_MARKETPLACE_SOURCE_TRAE)에서는 예상된 동작입니다. 설정은 이를 아무 작업도 하지 않는 것으로 처리하고 플러그인을 다시 설치합니다. - 데몬이 오프라인:
chorus daemon status를 실행한 다음 에이전트 연결 문제 해결을 참고하세요.