사용자 설정

사용자 설정 (User Settings)

사용자 구성 파일의 전역 settings 블록에 대한 전체 참조예요.

출처: 문서

본문

설정이 위치하는 곳 (Where Settings Live)

Docker Agent는 어떤 에이전트 YAML과도 무관한 단일 사용자 레벨 구성 파일을 읽어요:

~/.config/cagent/config.yaml

그 안의 settings: 블록은 실행하는 모든 에이전트에 적용되는 선호 사항 — 모양, 동작, 알림, 몇 가지 전역 안전 기본값 — 을 담아요. settings: 아래의 모든 것은 선택 사항이에요; 설정되지 않은 필드는 문서화된 기본값으로 폴백돼요.

# ~/.config/cagent/config.yaml
settings:
  theme: dracula
  lean: false
  sound: true

이 파일을 손으로 편집할 일은 거의 없어요. 대부분의 필드는 TUI의 /settings 대화상자(Appearance, Behavior, Notifications 탭)에서 관리돼요 — 거기서 Enter를 누르면 변경을 적용하고 유지해요. 소수의 필드(permissions, hooks, keybindings)는 대화상자 UI가 없고 파일을 직접 편집해서만 설정돼요.

Note 이 페이지는 settings: 를 문서로 다뤄요. 사용자 구성 파일에는 settings: 밖의 최상위 섹션 — aliases:, providers:, board:, credential_helper:, sandbox_allowlist: — 도 있는데, 여기서는 다루지 않아요.

설정 참조 (Settings Reference)

Setting Type Default Description
hide_tool_results boolean false TUI에서 도구 호출 결과를 기본적으로 숨김. --hide-tool-results 플래그와 Ctrl+O 토글을 미러링.
expand_thinking boolean false 새 세션을 접힌 대신 펼쳐진 thinking/도구 블록으로 시작.
split_diff_view boolean true 파일 편집 diff를 통합 대신 나란히(사이드바이사이드) 렌더링.
render_images boolean true Kitty 그래픽 프로토콜로 TUI에서 이미지 렌더링. 도구 결과 이미지와 에이전트 응답의 Markdown 이미지 모두에 적용. 터미널이 Kitty를 지원하지 않으면 자동 비활성화.
theme string default 테마 이름, 내장 테마 또는 ~/.cagent/themes/<name>.yaml 에서 로드. 특수 값 auto 는 터미널의 밝은/어두운 배경을 따름. Theming 참고.
theme_dark string default theme: auto 이고 터미널 배경이 어두울 때 적용되는 테마.
theme_light string default-light theme: auto 이고 터미널 배경이 밝을 때 적용되는 테마.
YOLO boolean false 실행하는 모든 에이전트에 걸쳐 모든 도구 호출을 전역 자동 승인. --yolo 플래그와 /yolo 명령을 미러링. safety: autonomous 의 레거시 별칭; 둘 다 설정되면 safety가 이김.
safety string unset 새 세션의 기본 안전 모드: strict, balanced, restricted, autonomous(다른 값은 구성 로딩 실패). 레거시 YOLO 플래그를 이김. 명시적 --safety / --yolo 플래그나 alias safety 옵션이 없을 때 적용되며, 에이전트 YAML의 agents.<name>.safety / runtime.safety 기본값보다 이김. 재개된 세션의 모드는 절대 바꾸지 않음.
lean boolean false 대화형 실행의 기본 UI로 전체 TUI 대신 lean TUI(단순화된, 최소 크롬 인터페이스) 사용.
tab_title_max_length int 20 탭 제목의 최대 표시 길이; 더 긴 제목은 줄임표로 잘림.
restore_tabs boolean false TUI 실행 시 이전에 열린 탭 복원.
sound boolean false 작업 성공 또는 실패 시 알림음 재생.
sound_threshold int 10 성공음이 재생되기 전에 작업이 실행되어야 하는 최소 초 단위 시간 (실패는 항상 재생됨).
snapshot boolean false 턴 경계에서 자동 shadow-git 스냅샷을 전역으로 활성화. Snapshots 참고.
cache_stable_prompts boolean false 변경되는 신뢰할 수 있는 컨텍스트(날짜, 환경 정보, 동적 프롬프트 파일)를 고정 시스템 접두사에서 빼고 대신 시간순 업데이트를 추가해서, 긴 세션에서 프롬프트 캐시 적중률을 개선.
warn_on_cache_miss boolean false 세션의 첫 호출 이후 어떤 모델 호출이 캐시된 입력 토큰이 없다고 보고하면(프롬프트 캐시 미스) 경고. /settings 의 Notifications 탭에서 관리.
busy_send_mode string steer 에이전트가 작업 중일 때 보낸 메시지에 무슨 일이 일어나는지: steer 는 진행 중인 스트림에 주입; queue 는 현재 턴이 끝날 때까지 보류.
interrupt_confirmation string always Esc 키가 실행 중인 스트림을 어떻게 중단하는지 제어: always(기본)는 확인 대화상자 표시; double-tap 은 1초 안에 Esc를 두 번 눌러야 함; none 은 확인 없이 즉시 중단. /settings 의 Behavior 탭에서 관리.
permissions object unset 전역 도구 권한 규칙(allow / ask / deny), 에이전트 레벨 및 세션 레벨 권한과 병합. Permissions 참고.
hooks object unset 모든 에이전트에 적용되는 전역 수명 주기 훅, 에이전트 구성 및 CLI 훅에 추가적(additive). Global (user-level) hooks 참고.
keybindings array unset TUI 키보드 단축키 재매핑. 전체 동작 목록과 구문은 Custom Keybindings 참고.
layout object unset 사이드바 위치와 섹션 가시성. 아래 Layout Settings 참고.

레이아웃 설정 (Layout Settings)

layout 은 TUI의 사이드바를 커스터마이즈해요. 영(영) 값(생략된 layout: 블록, 또는 생략된 어떤 필드)이 기본이에요: 사이드바는 오른쪽, 모든 섹션 표시, 정상 간격.

Field Type Default Description
sidebar_position string right right, left, top, bottom. Left/right는 전체 세로 사이드바 유지; top/bottom은 컴팩트 가로 밴드 렌더링.
section_spacing string normal compact, normal, relaxed — 사이드바 섹션 사이의 빈 줄 수.
hide_session_path boolean false 작업 디렉터리(세션 경로) 줄과 그 git 브랜치 숨김.
hide_usage boolean false 토큰 사용 섹션 숨김.
hide_agents boolean false Agents 섹션 숨김.
active_agents_only boolean false Agents 섹션(및 상단/하단 밴드)에 전체 구성된 팀 대신 현재 세션에서 활성인 에이전트만 표시. Agents 섹션이 숨겨진 동안은 무시.
hide_tools boolean false Tools 섹션 숨김.
hide_todos boolean false Todos 섹션 숨김.
settings:
  layout:
    sidebar_position: left
    section_spacing: compact
    hide_usage: true

완전한 예제 (Complete Example)

# ~/.config/cagent/config.yaml
settings:
  theme: auto
  theme_dark: dracula
  theme_light: default-light
  lean: false
  expand_thinking: false
  split_diff_view: true
  render_images: true
  hide_tool_results: false
  sound: true
  sound_threshold: 10
  snapshot: true
  cache_stable_prompts: true
  warn_on_cache_miss: true
  busy_send_mode: queue
  interrupt_confirmation: double-tap
  restore_tabs: true
  tab_title_max_length: 24
  layout:
    sidebar_position: right
    section_spacing: normal
  permissions:
    deny:
      - "shell:cmd=sudo*"
    allow:
      - "read_*"
  hooks:
    session_start:
      - type: command
        command: "~/.config/cagent/hooks/session-start.sh"
  keybindings:
    - action: "commands"
      keys: ["f2", "ctrl+k"]

우선순위 규칙 (Precedence Rules)

사용자 설정은 낮은 우선순위 소스예요: 그것들은 기본값을 세우고, 더 구체적인 것이 이겨요.

  • CLI 플래그가 사용자 설정보다 이겨요 — true에서 false로 가는 단순 불리언 플래그는 제외. docker agent run 플래그가 설정을 미러링하는 곳에서, 특정 실행에 대해 플래그를 전달하면 그 실행에 한해 설정보다 우선하며, 플래그는 저장된 사용자 구성 파일을 결코 수정하지 않아요. 이는 --lean / lean, --theme / theme, 안전 플래그 --safety / --yolo(아래 참고)에 대해 깔끔하게 성립하며, 플래그가 명령줄에 명시적으로 전달됐는지 추적합니다. --hide-tool-results / hide_tool_results 는 그렇지 않아요: "명시적으로 설정됐는지" 추적이 없는 평범한 불리언이므로, --hide-tool-results=false 를 전달해도 그 실행에서 저장된 hide_tool_results: true 설정을 끌 수 없어요 — 저장된 true가 이기고 플래그 위에 다시 적용돼요. 켜기 위해 플래그를 전달하는 것은 저장된 설정과 무관하게 예상대로 동작해요.
  • 안전은 자체의 완전히 지정된 체인을 가져요. 새 세션에 대해 이 순서의 첫 번째 소스가 이겨요: 명시적 --safety 플래그 > 명시적 --yolo 플래그 > alias safety / yolo 옵션 > settings.safety / settings.YOLO > 에이전트 YAML의 agents.<name>.safety > 에이전트 YAML의 runtime.safety > 내장 기본값(읽기 전용 도구 자동 승인, 나머지 다른 것 확인). 각 범위에서 safety 필드가 레거시 YOLO / yolo 불리언보다 이겨요. 따라서 당신의 설정은 에이전트 작성자가 YAML에서 선언한 어떤 것보다도 이겨요 — 파일, URL, OCI 레지스트리에서 로드된 에이전트 구성은 결코 settings.safety, alias 옵션, CLI 플래그를 재정의할 수 없어요. 명시적 --yolo=false 는 그 실행에 대해 저장된 YOLO: true / alias yolo 를 억제해요(다른 설정과 YAML 기본값은 여전히 적용). 재개된 세션은 저장된 모드를 유지해요: 설정과 alias 기본값은 절대 만지지 않아요; 오직 명시적 --safety 나 --yolo 플래그만 재개를 재정의해요. Safety Modes 참고.
  • Alias는 CLI 플래그와 사용자 설정 사이에 위치해요. alias(docker agent alias add ...)는 자신의 yolo, safety, model, hide_tool_results, sandbox 기본값을 묶을 수 있어요; 그것들은 해당 플래그가 명시적으로 전달되지 않았을 때 적용되는데, 사용자 설정이 하는 것과 같지만 사용자 설정 이후에 해석되어 alias 자신의 선택이 당신의 전역 기본값보다 우선해요.
  • 권한은 재정의가 아니라 병합돼요. 전역 settings.permissions 와 에이전트 자신의 permissions: 는 평가 전에 단일 deny → allow → ask 패턴 집합으로 결합돼요 — 전역 deny는 에이전트 구성이 무엇을 허용하든 항상 차단해요. Merging Behavior 참고.
  • 훅은 재정의가 아니라 추가적(additive)이에요. 주어진 수명 주기 이벤트에 대해 에이전트 구성, settings.hooks, hooks.d/ drop-in, --hook-* CLI 플래그의 훅이 모두 그 순서로 실행돼요. 전역 훅은 개별 에이전트가 억제할 수 없어요.
  • 다른 모든 것은 평범한 기본값이에요. CLI나 에이전트 구성에 대응이 없는 필드(sound, sound_threshold, restore_tabs, tab_title_max_length, split_diff_view, render_images, cache_stable_prompts, warn_on_cache_miss, busy_send_mode, keybindings, layout)는 오직 settings:(또는 그것을 쓰는 /settings 대화상자)에서만 오고 — 실행별로 재정의할 것이 없어요.

더 알아보기 (Learn more)