참고
기능과 옵션
판정 커널의 모든 기능, 기본으로 켜져 있는지, 해당 판정 지점, 그리고 옵션마다의 기본값과 범위.
기능은 각각 ~/.mu/agent/mu.json의 features.<name> 아래에서 설정해요. false는 기능을 끄고, true는 기본값으로 켜고, 객체는 개별 옵션을 덮어써요.
{
"features": {
"injection": { "tools": ["web_fetch", "mcp__*"] },
"board": { "defaultOn": true },
"ttsr": false
}
}
데스크톱 앱의 설정도 같은 파일에 쓰고, 이 페이지와 같은 이름과 설명을 써요. 둘 다 저장소의 매니페스트 하나에서 나와요.
메시지 사전 분류 preflight
기본으로 켜짐판정 지점 input.preflight
작업을 시작하기 전에 메시지를 판정하고, 그 판정을 대화에 표시합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
thinking | false | 판정에 따라 사고 수준 설정(바꾸면 프롬프트 캐시가 사라짐) |
hints | true | 모델에 한 줄 힌트 제공 |
show | true | 대기 상태와 판정 표시 |
waitMs | 4000 밀리초 | 최대 대기 시간. 이 시간이 지나면 판정 없이 턴을 시작합니다. 범위는 500부터 30000까지예요. |
작업 중 끼어들기 interjection
기본으로 켜짐판정 지점 input.interjection
에이전트가 작업하는 동안 보낸 메시지를 처리합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
waitMs | 1500 밀리초 | 최대 대기 시간. 범위는 200부터 10000까지예요. |
스킬 노출 skills
기본으로 켜짐판정 지점 skills.disclosure
세션에 어떤 스킬 설명을 넣을지 고릅니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
minSkills | 4 | 스킬이 이보다 적으면 거르지 않음. 범위는 1부터 100까지예요. |
waitMs | 4000 밀리초 | 최대 대기 시간. 범위는 500부터 30000까지예요. |
기능 확장 카탈로그 catalog
기본으로 켜짐판정 지점 capability.disclosure
많이 설치하고 적게 노출합니다. 기능 확장 팩과 MCP 서버는 숨겨 두었다가 작업마다 엽니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
waitMs | 4000 밀리초 | 최대 대기 시간. 범위는 500부터 30000까지예요. |
작업 프레임과 할 일 목록 frame
기본으로 켜짐판정 지점 task.frame
사용자가 실제로 원하는 것을 기록합니다. 목표, 제약 조건(사용자가 한 말 그대로, 출처 포함), 현재 하위 목표, 확인 항목입니다. 확인 항목은 모델이 todo 도구로 체크하는 할 일 목록입니다. 목표와 관련 있는지 따지는 모든 판정이 이를 읽으며, 세션을 되감으면 함께 되감깁니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
waitMs | 3000 밀리초 | 턴이 프레임을 기다리는 최대 시간. 메시지가 도착한 때부터 셉니다. 늦은 업데이트도 버리지 않습니다. 턴은 이전 버전과 원래 메시지로 시작하고, 업데이트는 준비되는 대로 반영됩니다. 범위는 0부터 30000까지예요. |
writerTimeoutMs | 20000 밀리초 | 프레임 작성 시간 제한. 시간이 초과되거나 응답 형식이 잘못되면 마지막 버전을 유지하고 오래된 것으로 표시하며, 목표 기반 필터링을 보류하고 다음 메시지에서 다시 시도합니다. 범위는 1000부터 120000까지예요. |
show | true | 대화에 프레임 업데이트 표시 |
교훈 memory
기본으로 켜짐판정 지점 memory.recall memory.capture memory.outcome memory.worth memory.merge memory.applied
사용자의 정정, 에이전트가 스스로 찾은 탈출구, 모델과 하위 에이전트가 알아낸 것에서 교훈을 배웁니다. 저장하기 전에 기존 교훈과 병합하고, 다음에 관련된 교훈을 함께 가져오며, 아무도 따르지 않는 교훈은 사용 중지합니다. /lessons로 목록을 보고, /forget으로 하나를 사용 중지합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
path | 비어 있음 | 교훈 파일. 비워 두면 기본 위치를 사용합니다. |
maxCandidates | 24 | 판정할 최대 교훈 수. 따른 횟수가 많은 교훈이 먼저이고, 그다음은 최근에 저장되거나 확인된 교훈입니다. 범위는 1부터 200까지예요. |
maxInjected | 5 | 가져올 최대 교훈 수. 범위는 0부터 20까지예요. |
waitMs | 4000 밀리초 | 불러오기 최대 대기 시간. 메시지가 도착한 때부터 셉니다. 하위 에이전트에게 줄 교훈을 고를 때도 이만큼 기다립니다. 범위는 0부터 30000까지예요. |
retireAfter | 8 | 한 번도 따르지 않은 채 이만큼 불러오면 사용 중지. 0이면 교훈을 자동으로 사용 중지하지 않습니다. 범위는 0부터 100까지예요. |
mergeNeighbours | 6 | 저장 전에 비교할 비슷한 교훈 수. 겹치는 단어로 골라 한 번의 요청으로 묻습니다. 0이면 병합하지 않고 바로 저장합니다. 범위는 0부터 16까지예요. |
outcome | true | 에이전트가 찾은 탈출구에서 배우기. 교훈을 글로 옮기려면 writer 모델이나 대화의 모델이 필요합니다. |
applied | true | 턴이 끝날 때 교훈을 따랐는지 확인 |
위험한 명령 차단 guard
기본으로 켜짐판정 지점 tool.risk
위험한 명령은 실행하기 전에 확인합니다.
옵션이 없어요.
권한 모드 permissions
기본으로 켜짐판정 지점 tool.approval
전체 접근, Jev 승인, 최소 권한 중 하나를 쓰며 /permissions로 언제든 전환합니다. 단계에 권한이 필요하면 상태 표시줄에서 묻고, 한 번만 허용하거나 대화 전체에 허용할 수 있습니다. 켜져 있는 동안에는 위험한 명령 차단도 이 기능이 맡습니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
mode | jev | 새 대화의 모드. /permissions로 한 번 고르면 마지막으로 고른 모드를 사용합니다.full 전체 접근 · jev Jev 승인 · ask 최소 권한 |
제약 조건 검사 constraints
기본으로 켜짐판정 지점 tool.constraint
변경이나 명령을 먼저 사용자의 제약 조건에 비추어 확인합니다. 하위 에이전트도 이 제약 조건을 따릅니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
maxConstraints | 6 | 호출당 확인할 최대 제약 조건 수. 가장 최근의 것을 사용합니다. 범위는 1부터 20까지예요. |
waitMs | 5000 밀리초 | 최대 대기 시간. 범위는 500부터 30000까지예요. |
주입 선별 injection
기본으로 켜짐판정 지점 tool.injection
모델이 웹 페이지, 검색 결과, MCP 응답을 읽기 전에 AI를 겨냥한 지시를 보류합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
tools | web_fetch, web_search, browse, mcp__* | 선별할 도구. 도구 이름 또는 *로 끝나는 접두사. mcp__*는 모든 MCP 서버입니다. |
waitMs | 6000 밀리초 | 최대 대기 시간. 이 시간이 지나면 명백한 주입 문구만 규칙으로 보류합니다. 판정은 그대로 기록됩니다. 범위는 500부터 30000까지예요. |
도구 출력 선별 admission
기본으로 켜짐판정 지점 tool.admission tool.admission.test-log
긴 도구 출력이 컨텍스트에 어떻게 들어갈지 정합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
minChars | 4000 자 | 이보다 긴 출력만 선별. 범위는 500부터 200000까지예요. |
chunkChars | 1200 자 | 청크 크기. 범위는 200부터 20000까지예요. |
maxChunks | 48 | 판정할 최대 청크 수. 범위는 4부터 400까지예요. |
batchChunks | 16 | 요청당 청크 수. 호스팅 판정기는 여러 청크를 한 번의 요청으로 받으며 상태는 한 번만 과금됩니다. 로컬 판정기는 한 번에 하나씩 처리합니다. 범위는 1부터 32까지예요. |
waitMs | 4000 밀리초 | 최대 대기 시간. 이 시간이 지나면 출력을 통째로 넣고, 판정은 기록만 합니다. 범위는 500부터 30000까지예요. |
passThrough | read, edit, write | 선별하지 않을 도구 |
testLog | off | 테스트 로그 정리off 끔 · rules 완전히 같은 반복만 제거(무손실) · jev 나머지에서도 판정기가 선별 |
agentEnv | true | 테스트 실행기에 에이전트가 읽는다고 알림. 그러면 Vitest 등은 실패와 요약만 출력합니다. |
오래된 결과 잊기 forgetting
기본으로 켜짐판정 지점 context.forget
컨텍스트가 빠듯해지면 오래된 결과를 자리 표시로 바꿉니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
thresholds | 50, 70, 85 | 발동 임계값(컨텍스트 사용량 %) |
minChars | 6000 자 | 이보다 긴 결과만. 범위는 500부터 200000까지예요. |
minAgeTurns | 2 | 최소 경과 턴 수. 범위는 0부터 50까지예요. |
maxPerBatch | 12 | 배치당 최대 판정 수. 범위는 1부터 100까지예요. |
waitMs | 4000 밀리초 | 최대 대기 시간. 이번 요청은 이 시간만큼 기다리며, 늦게 온 판정은 다음 요청에 적용됩니다. 범위는 500부터 30000까지예요. |
요약 없는 압축 compaction
기본으로 꺼짐실험판정 지점 context.compact
요약 대신 원문 구절을 유지하는 압축입니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
keepThreshold | 0.5 | 유지 임계값. 범위는 0부터 1까지예요. |
minChars | 600 자 | 이보다 짧으면 그대로 유지. 범위는 100부터 20000까지예요. |
headChars | 300 자 | 잘라낼 때 남기는 앞부분. 범위는 0부터 5000까지예요. |
targetRatio | 0.5 | 원본 대비 목표 비율. 범위는 0.05부터 1까지예요. |
maxWindowShare | 0.25 | 컨텍스트 창 대비 최대 비율. 범위는 0.05부터 0.9까지예요. |
freeChars | 24000 자 | 이보다 짧은 기록은 줄이지 않음. 범위는 0부터 500000까지예요. |
maxJudged | 120 | 판정할 최대 구절 수. 범위는 10부터 1000까지예요. |
체크포인트와 되감기 checkpoint
기본으로 켜짐판정 지점 turn.rewind
파일을 편집하는 모든 턴에서 첫 변경 전에 작업 트리의 스냅샷을 mu 전용 섀도 git 디렉토리에 저장하며, 사용자의 저장소는 건드리지 않습니다. /rewind는 파일과 대화를 되돌리고, /rewind undo는 되감기를 취소합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
dir | 비어 있음 | 스냅샷 저장 위치. 비워 두면 mu 홈의 mu/checkpoints를 쓰며, 프로젝트마다 섀도 저장소를 하나씩 둡니다. |
keep | 50 | 프로젝트별 보관 스냅샷 수. 범위는 1부터 1000까지예요. |
maxAgeDays | 14 일 | 스냅샷 보관 기간. 범위는 1부터 365까지예요. |
maxFileMb | 5 MB | 스냅샷의 최대 파일 크기. 이보다 큰 파일은 스냅샷에서 제외되며, 되감기도 이런 파일은 건드리지 않습니다. 범위는 1부터 1024까지예요. |
maxFiles | 5000 개 | 스냅샷 한 번에 담는 최대 파일 수. 담을 파일이 이보다 많으면 해당 세션은 체크포인트 없이 진행되며, 그 사실을 한 번 알려 줍니다. 홈 폴더와 mu 자체 폴더는 스냅샷에 넣지 않습니다. 범위는 100부터 1000000까지예요. |
maxTotalMb | 200 MB | 스냅샷 한 번의 최대 전체 크기. 담을 양이 이보다 많으면 해당 세션은 체크포인트 없이 진행되며, 그 사실을 한 번 알려 줍니다. 범위는 1부터 100000까지예요. |
ignore | 비어 있음 | 추가로 무시할 경로. gitignore 패턴을 한 줄에 하나씩 입력하세요. 프로젝트의 .gitignore와 내장 목록(node_modules, 빌드 결과물 등)은 항상 적용됩니다. |
timeoutMs | 30000 밀리초 | 스냅샷 최대 소요 시간. 이 시간을 넘기면 해당 턴은 체크포인트 없이 진행되며, 도구 호출은 그대로 실행됩니다. 범위는 1000부터 600000까지예요. |
propose | true | 막다른 길에서 되감기 제안 |
confirmSeconds | 120 초 | 제안이 응답을 기다리는 시간. 응답이 없으면 실행을 계속합니다. 0이면 무기한 기다립니다. 범위는 0부터 3600까지예요. |
이탈 감시 monitor
기본으로 켜짐판정 지점 turn.drift
목표에서 벗어나거나 제자리를 맴도는 것을 알아차립니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
every | 6 | 확인 간격(도구 호출 수). 범위는 1부터 100까지예요. |
repeats | 3 | 맴돌기로 보는 반복 횟수. 범위는 2부터 20까지예요. |
window | 8 | 관찰 구간. 범위는 2부터 100까지예요. |
언어 서버 진단 lsp
기본으로 켜짐판정 지점 diagnostics.delivery
이 컴퓨터에 이미 설치된 언어 서버를 사용하고(따로 설치하지 않음), 편집으로 새로 생긴 진단만 남기며, 모델에게 알릴 시점은 판정기가 고릅니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
builtin | true | 잘 알려진 서버의 내장 목록 사용. TypeScript, Python, Go, Rust, C/C++용으로 잘 알려진 서버이며, PATH에서만 찾습니다. 직접 추가하는 서버는 mu.json의 features.lsp.servers에 넣습니다. |
editTools | edit, write | 파일 편집으로 보는 도구 |
subAgents | false | 하위 에이전트도 언어 서버 시작. 기본값은 꺼짐입니다. 하위 에이전트마다 서버를 따로 띄우면 컴퓨터에 부담이 큽니다. |
settleMs | 1500 밀리초 | 편집 후 서버 최대 대기 시간. 이 시간이 지나면 기다리지 않습니다. 늦게 온 진단은 다음 편집 때나 턴이 끝날 때 처리합니다. 범위는 0부터 10000까지예요. |
turnEndSettleMs | 3000 밀리초 | 턴 종료 시 최대 대기 시간. 범위는 0부터 30000까지예요. |
quietMs | 250 밀리초 | 서버가 끝난 것으로 보는 무응답 시간. 범위는 20부터 5000까지예요. |
baselineMs | 5000 밀리초 | 편집 전 진단 최대 대기 시간. 백그라운드에서 기다리며 도구를 막지 않습니다. 이 시간이 지나면 첫 보고를 새 진단으로 보지 않습니다. 범위는 100부터 60000까지예요. |
maxItems | 10 | 한 번에 알릴 최대 진단 수. 범위는 1부터 100까지예요. |
maxServers | 4 | 동시에 실행할 최대 서버 수. 범위는 1부터 16까지예요. |
waitMs | 4000 밀리초 | 판정기 최대 대기 시간. 범위는 500부터 30000까지예요. |
출력 중 교정(실험) ttsr
기본으로 꺼짐판정 지점 output.drift
의미 기반 TTSR: 정규식이 아니라 판정기가 출력이 벗어나는 것을 알아차리고, 출력을 끊고, 규칙을 보여 준 뒤 모델이 이어서 쓰게 합니다. 기본값은 꺼짐이며, 켜면 출력 구간마다 판정기 호출이 한 번씩 더 듭니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
rules | 비어 있음 | 항상 지킬 규칙. 한 줄에 하나씩 평소 말로 쓰세요. 예: “한국어로 답할 것”, “임시 구현 금지”. 작업 프레임에 있는 사용자의 제약 조건은 자동으로 추가됩니다. |
segmentChars | 600 | 확인 간격(출력 글자 수). 범위는 200부터 5000까지예요. |
maxRules | 4 | 호출당 확인할 최대 규칙 수. 규칙이 더 많으면 가장 최근에 말한 것을 남깁니다. 범위는 1부터 12까지예요. |
maxInterrupts | 2 | 사용자 메시지 사이 최대 중단 횟수. 범위는 1부터 10까지예요. |
목표 모드 goal
기본으로 켜짐판정 지점 goal.met
/goal <조건>을 입력하면 에이전트는 조건이 충족될 때까지 계속 작업합니다(/goal만 입력하면 조건을 묻습니다). 멈추려 할 때마다 모델이 증거를 읽고 충족되었는지, 다음 단계가 무엇인지 확인합니다. 사용자가 중단하거나, 모델 호출이 실패하거나, 아무것도 하지 않거나 제자리를 맴돌거나, 허용된 횟수나 시간을 다 쓰면 스스로 멈추며, 다음 메시지를 보내면 다시 이어 갑니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
checker | model | 목표 달성 확인 주체. 모델이 목표, 이번 실행에서 한 일, 마지막 테스트 실행, 마무리 메시지를 읽고 결론과 다음 단계를 제시합니다. Jev는 모델이 답하지 않을 때만 씁니다. 어느 쪽이든 완료되지 않은 확인 항목이나 검증되지 않은 편집이 있으면 아직 달성되지 않은 것입니다.model 모델(추천) · jev Jev 판정기 |
checkModel | 비어 있음 | 확인에 쓸 모델. provider/model 형식입니다. 비워 두면 세션의 현재 모델을 씁니다. |
checkThinking | off | 확인 시 사고 수준off 끔 · minimal 최소 · low 낮음 · medium 보통 · high 높음 |
checkTimeoutMs | 90000 밀리초 | 확인 최대 대기 시간. 이 시간이 지나면 Jev가 판정하고, 그것도 안 되면 사실만 보고 정합니다. 범위는 5000부터 600000까지예요. |
stallLimit | 2 | 멈추기 전 진전 없는 실행 수. 확인에서 에이전트가 같은 일을 반복하고 있다고 본 경우입니다. 처음에는 방향을 바꾸라고 알리고, 이 횟수에 이르면 목표를 일시정지하고 사용자를 기다립니다. 범위는 1부터 10까지예요. |
maxContinuations | 20 | 최대 계속 실행 횟수. 사용자의 마지막 메시지부터 셉니다. 범위는 1부터 200까지예요. |
maxMinutes | 180 분 | 최대 자동 실행 시간. 사용자의 마지막 메시지부터 셉니다. 범위는 5부터 1440까지예요. |
idleLimit | 2 | 멈추기 전 빈 실행 수. 도구를 한 번도 호출하지 않고 끝난 실행이 연속된 횟수입니다. 에이전트에 아무 진전이 없다는 뜻입니다. 범위는 1부터 10까지예요. |
쉬운 말 보드 board
기본으로 켜짐판정 지점 board.read
일이 어디까지 진행됐는지, 지금 무슨 일이 일어나는지, 무엇이 여러분을 기다리는지 쉬운 말로 알려 주고, 기록도 남겨요. 한 걸음마다 그 자리에서 한 줄, 에이전트가 말하거나 알아낸 것은 쉽게 말하는 모델이 바로 다시 말해 주고, 무엇이 말할 가치가 있는지는 Jev가 정해요. 실행이 끝나면 한 번 더 요약하고 기록은 그대로 남아요. 여러분만을 위한 것이며 모델의 컨텍스트에는 들어가지 않아요. 프로젝트별로 켜고 꺼요(/board on, /board off). 처음에는 글을 쓸 모델을 고르고(/board model로 바꿀 수 있어요).
| 옵션 | 기본값 | 의미 |
|---|---|---|
defaultOn | false | 아직 설정하지 않은 프로젝트에도 켜기. 기본값은 꺼짐입니다. 보드를 업데이트할 때마다 모델을 한 번 호출합니다. |
model | 비어 있음 | 보드를 작성하는 모델. provider/model 형식이며, 여기서 정하면 묻지 않습니다. 비워 두면 보드를 처음 켤 때 고르게 되며(Claude Opus 4.6 추천, 다음은 Gemini 3.8 Flash), mu/board.json에 저장됩니다. 고르지 않으면 writer 모델을, 그것도 없으면 세션의 모델을 씁니다. |
language | auto | 보드 언어auto 사용자가 쓰는 언어 · zh 중국어 · en 영어 |
everyTools | 5 | 살펴보기 간격(도구 호출 수). 범위는 1부터 100까지예요. |
minIntervalMs | 20000 밀리초 | 작업 중 살펴보기 최소 간격. 에이전트가 멈추면 이 설정과 관계없이 항상 살펴봅니다. 범위는 0부터 600000까지예요. |
maxSteps | 10 | 매번 읽는 최근 도구 호출 수. 범위는 3부터 50까지예요. |
narrateTimeoutMs | 60000 밀리초 | 보드 작성 최대 대기 시간. 이 시간이 지나면 정해진 문장을 씁니다. 범위는 5000부터 300000까지예요. |
완료 확인 completion
기본으로 켜짐판정 지점 turn.completion
완료라고 하기 전에 작업을 검증한 것이 있는지 확인합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
waitMs | 3000 밀리초 | 최대 대기 시간. 이 시간이 지나면 알려 주지 않고, 판정은 기록만 합니다. 범위는 500부터 30000까지예요. |
중간에 멈추면 이어서 하기 continuation
기본으로 켜짐판정 지점 turn.continue
하겠다고 하고 멈춘 실행을 다시 작업으로 돌려보냅니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
maxNudges | 2 | 메시지당 최대 재촉 횟수. 범위는 1부터 5까지예요. |
waitMs | 3000 밀리초 | 최대 대기 시간. 이 시간이 지나면 알려 주지 않고, 판정은 기록만 합니다. 범위는 500부터 30000까지예요. |
알림 라우팅 notify
기본으로 켜짐판정 지점 notify.routing
이벤트를 언제 모델에게 알릴지 정합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
budgetThresholds | 70, 85 | 컨텍스트 예산 알림(%) |
캐시 예열 warming
기본으로 켜짐판정 지점 cache.warming
이득이 될 때 프롬프트 캐시가 만료되기 전에 갱신합니다.
옵션이 없어요.
판정기 연결 예열 warmup
기본으로 켜짐
세션을 쓰는 동안 이따금 아주 작은 질문을 보내 판정기와의 연결을 웜 상태로 유지합니다. 그래서 턴이 시작되기 전의 판정은 연결에 드는 1~3초를 아낍니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
intervalMs | 50000 밀리초 | 간격. 서버는 약 90초 동안 쉬고 있는 연결을 끊으므로, 간격은 그보다 짧아야 합니다. 범위는 10000부터 85000까지예요. |
idleMs | 900000 밀리초 | 이만큼 조용하면 중지. 범위는 60000부터 7200000까지예요. |
하위 에이전트 swarm
기본으로 켜짐판정 지점 swarm.routing swarm.patch
역할을 맡은 하위 에이전트에게 작업을 위임합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
models | 비어 있음 | 모델 등급(저렴한 것부터 강한 것까지). 비워 두면 모든 하위 에이전트가 세션의 모델을 씁니다. |
maxTasks | 6 | 호출당 최대 작업 수. 범위는 1부터 32까지예요. |
concurrency | 3 | 동시 실행 수. 범위는 1부터 16까지예요. |
defaultAgent | worker | 기본 역할 |
agentsDir | 비어 있음 | 사용자 정의 역할 폴더. 비워 두면 <에이전트 디렉토리>/agents를 씁니다. |
isolation | worktree | 파일을 편집하는 하위 에이전트. 격리된 변경은 패치로 돌아오며, 메인 에이전트가 apply_patch_from으로 적용할지 정합니다. git 저장소 밖에서는 현재 위치에서 바로 편집합니다.worktree 자체 git 워크트리에서 편집 · none 현재 위치에서 바로 편집 |
carryUncommitted | true | 커밋하지 않은 변경 가져가기. 하위 에이전트가 마지막 커밋이 아니라 메인 에이전트가 보는 파일 상태에서 시작합니다. |
patchPreviewLines | 30 | 패치 미리 보기 줄 수. 하위 에이전트의 보고와 함께 보여 줄 패치의 앞부분입니다. 범위는 0부터 400까지예요. |
하이브 hive
기본으로 켜짐판정 지점 hive.publish hive.deliver hive.relate
여러 비(bee)가 하나의 어려운 작업을 병렬로 처리하고, 비 사이에 오가는 내용은 판정기가 통제합니다. /hive <질문>으로 직접 시작할 수 있고, 곧바로 풀리지 않는 문제에서는 에이전트도 스스로 시작합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
maxNotesPerBee | 12 | 비 한 마리당 최대 게시 수. 범위는 1부터 100까지예요. |
maxDeliveriesPerBee | 10 | 비 한 마리당 최대 전달 수. 범위는 1부터 100까지예요. |
checkpointEvery | 4 | 발견 요청 전 보고 없는 도구 호출 수. 0이면 끕니다. 범위는 0부터 50까지예요. |
lastCall | true | 보고서 작성 중 마지막으로 한 번 더 수신 |
maxRelatedPerNote | 6 | 새 발견과 대조할 이전 발견의 최대 수. 같은 단어가 들어 있는 발견만 대조합니다. 0이면 정정을 하지 않습니다. 범위는 0부터 30까지예요. |
verifyConflicts | 1 | 해결되지 않은 이견에 더 보낼 검증 비 최대 마릿수. 0이면 추가하지 않으며, 양쪽 모두 보고서에 남습니다. 범위는 0부터 3까지예요. |
verifyAfterSeconds | 60 | 검증 비를 더 보내기 전까지 이견을 기다리는 시간(초). 범위는 0부터 600까지예요. |
파일 찾기 locate
기본으로 켜짐판정 지점 files.locate
locate 도구: 설명으로 파일을 찾습니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
candidates | 40 | 판정할 후보 수. 범위는 5부터 400까지예요. |
results | 12 | 반환할 결과 수. 범위는 1부터 100까지예요. |
일괄 판정 도구 judgeItems
기본으로 켜짐판정 지점 judge.items
judge_items 도구: 예/아니오 질문 하나로 여러 항목 각각에 확률을 줍니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
maxItems | 500 | 한 번에 최대 항목 수. 범위는 10부터 5000까지예요. |
내장 브라우저 browser
기본으로 켜짐판정 지점 browser.step
판정기가 조작하는 브라우저로, 자체 프로필을 씁니다. 사용자의 브라우저는 건드리지 않습니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
headless | true | 헤드리스로 실행 |
maxSteps | 40 | 실행당 최대 단계 수. 범위는 1부터 200까지예요. |
textChars | 4000 자 | 단계마다 읽는 페이지 텍스트. 범위는 500부터 50000까지예요. |
embedded | true | 데스크톱 앱이 실행 중이면 앱의 브라우저 패널 사용. 그러면 모든 단계가 보이고, 일시정지, 중지, 직접 조작을 할 수 있습니다. 앱이 없으면 mu 자체 브라우저를 씁니다. |
profileDir | 비어 있음 | 브라우저 프로필 폴더. 비워 두면 mu 자체 폴더를 씁니다. |
백그라운드 명령 background
기본으로 켜짐
bg_start / bg_output / bg_stop: 개발 서버나 긴 빌드를 턴을 막지 않고 실행합니다. 작업이 끝났을 때 끼어들지는 알림 라우팅이 정하며, 모든 작업은 세션과 함께 중지됩니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
maxJobs | 8 | 동시 실행 작업 수. 범위는 1부터 32까지예요. |
bufferChars | 262144 자 | 작업당 메모리에 보관하는 출력. 최신 출력만 남기며, 전체 출력은 로그 파일에 있습니다. |
maxOutputChars | 20000 자 | bg_output 1회 최대 반환량 |
killGraceMs | 3000 밀리초 | 강제 종료 전 대기 시간. 먼저 SIGTERM을 보내고(Windows에서는 /F 없는 taskkill), 이 시간이 지나면 강제로 종료합니다. |
logDir | 비어 있음 | 로그 디렉토리. 비워 두면 ~/.mu/jobs/<세션 ID>이며, 7일 후 삭제됩니다. |
inheritShell | true | 포그라운드 셸 설정 사용. bash 도구처럼 settings.json에서 shellPath와 shellCommandPrefix를 읽습니다. |
wakeWhenIdle | false | 끝난 작업이 유휴 에이전트를 깨울 수 있음. “지금”으로 판정될 때만 턴을 시작합니다. 끄면 알림을 덧붙이기만 합니다. |
웹 읽기와 검색 web
기본으로 켜짐
web_fetch는 페이지를 텍스트로 읽습니다(시간·크기 제한, 내부 주소 거부, 페이지 텍스트는 신뢰할 수 없음으로 표시). web_search는 중국 본토에서 키 없이 응답하는 검색 소스를 씁니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
search | so | 검색 소스. so(360), sogou, bing-cn, searxng:<기본 URL> 중 하나 또는 {query}가 들어간 URL입니다. |
searchFallback | true | 실패 시 다른 내장 소스 시도. 보안 확인 페이지, 결과 없음, 검색어와 무관한 결과일 때 적용됩니다. |
maxChars | 20000 자 | web_fetch 1회 최대 반환량 |
timeoutMs | 20000 밀리초 | 요청당 시간 제한 |
maxBytes | 2000000 바이트 | 다운로드 한도 |
maxRedirects | 5 | 최대 리디렉션 수. 범위는 0부터 20까지예요. |
allowLoopback | true | 이 컴퓨터의 개발 서버 허용. URL 자체에 localhost 또는 127.0.0.1이 적힌 경우에만 허용합니다. 웹에서 리디렉션된 경우는 항상 거부합니다. |
allowPrivate | false | 사설 네트워크 주소 허용. 10/8, 172.16/12, 192.168/16, 링크 로컬 등입니다. 페이지가 읽기 도구를 내부 네트워크로 유도하지 못하도록 기본적으로 거부합니다. |
환영 화면 welcome
기본으로 켜짐
터미널의 환영 상자와 신원 안내입니다.
옵션이 없어요.
기존 설정 상속 inherit
기본으로 켜짐
Claude Code, Cursor, Codex에 이미 설정한 규칙, 스킬, MCP 서버를 읽기 전용으로 사용합니다. 항상 적용되는 규칙은 프롬프트에 들어가고, 파일 패턴으로 범위가 정해진 규칙은 일치하는 파일을 처음 건드린 도구의 결과와 함께 한 번 전달되며, 나머지는 설명만 나열됩니다. 프로젝트 내용은 신뢰하는 프로젝트에서만 사용합니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
claude | true | Claude Code에서 |
cursor | true | Cursor에서 |
codex | true | Codex에서 |
rules | true | 규칙 상속 |
skills | true | 스킬 상속 |
mcp | true | MCP 서버 상속. 끄면 mu.json의 mcp.servers에 있는 서버만 사용합니다. |
maxRuleChars | 4000 자 | 파일 범위 규칙 1개당 최대 전달량. 나머지는 파일에 남아 있어 모델이 읽을 수 있습니다. 범위는 500부터 20000까지예요. |
maxAlwaysChars | 16000 자 | 항상 적용 규칙의 예산. 예산에 들어가지 않는 항상 적용 규칙은 설명만 나열하므로, 규칙 때문에 프롬프트가 부풀지 않습니다. 범위는 0부터 100000까지예요. |
MCP 서버 mcp
기본으로 켜짐
MCP 서버는 pi 내장 클라이언트로 연결합니다(stdio 및 Streamable HTTP, OAuth 로그인, /mcp로 관리). Claude Code, Cursor, Codex, mu.json에서 이어받은 각 서버는 숨겨진 카탈로그 항목으로, 판정기가 작업에 필요하다고 보거나 모델이 find_capability로 요청할 때만 시작되고 도구가 모델에 전달됩니다. 도구 목록은 캐시되므로 서버가 한 번도 실행되지 않았어도 판정기가 설명을 볼 수 있습니다. 프로젝트에서 정의한 서버는 처음 시작하기 전에 묻고, 정의가 바뀌면 다시 묻습니다. mu.json의 mcp.servers에서 "exposure": "always"를 지정하면 서버가 항상 열려 있습니다. mu mcp add로 추가한 서버는 pi가 관리합니다. 세션과 함께 연결되고, 도구는 필요할 때 tool_search가 불러옵니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
startTimeoutMs | 45000 밀리초 | 시작 시간 제한. npx 방식의 서버는 먼저 자신을 다운로드합니다. 범위는 1000부터 300000까지예요. |
requestTimeoutMs | 120000 밀리초 | 호출 시간 제한. 범위는 1000부터 3600000까지예요. |
기능 확장 팩 packs
기본으로 켜짐판정 지점 review.triage
mu와 함께 제공되며 작업에 필요할 때까지 숨겨 두는 도구 팩입니다. 필요한 프로그램이 없으면 설치 안내를 보여 줍니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
astGrep | true | ast-grep 구조 검색 및 재작성. 텍스트가 아닌 문법 구조로 코드를 찾고 바꿉니다. 이 컴퓨터에 ast-grep이 있어야 합니다. |
maxResults | 50 | 검색 1회 최대 일치 수. 범위는 1부터 500까지예요. |
maxDiffChars | 12000 자 | 결과 1개의 최대 diff. 범위는 1000부터 200000까지예요. |
astGrepCommand | 비어 있음 | ast-grep 경로. 비워 두면 PATH에서 ast-grep을, 그다음 sg를 찾습니다. |
github | true | gh를 통한 GitHub. 도구 없이, PR, 이슈, 검사, 릴리스에 gh를 쓰는 법을 알려 주는 스킬 하나만 제공합니다. 이 컴퓨터에 gh가 있어야 합니다. |
ghCommand | 비어 있음 | gh 경로. 비워 두면 PATH에서 gh를 찾습니다. |
commit | true | /commit: 변경을 여러 커밋으로 나누기. 모델이 커밋 묶음과 메시지를 제안하고, 사용자가 계획을 확인한 뒤에만 커밋합니다. 모두 커밋되거나 하나도 커밋되지 않습니다. 푸시는 하지 않습니다. |
maxPlanChars | 60000 | 모델이 읽는 변경 글자 수. 범위는 5000부터 400000까지예요. |
review | true | /review, 발견을 P0~P3로 분류 |
conflicts | true | 충돌 해결. 병합, 리베이스, 체리픽이 충돌로 멈추면 파일마다 양쪽 내용과 공통 기준을 보여 주고, 블록 단위로 해결 내용을 쓴 뒤 파일을 해결됨으로 표시합니다. 커밋하지 않으며 --continue도 실행하지 않습니다. |
maxSideLines | 80 | 충돌 블록 한쪽당 표시 줄 수. 범위는 10부터 1000까지예요. |
maxConflictChars | 20000 | 파일 하나의 충돌 표시 글자 수. 범위는 2000부터 200000까지예요. |
maxFindings | 40 | 분류 1회당 최대 발견 수. 나머지도 보고되지만 분류되지는 않습니다. 범위는 5부터 200까지예요. |
debugger | true | 디버거: 중단점, 단계 실행, 변수. 프로그램을 디버거에서 실행해 중단점이나 처리되지 않은 예외에서 멈추고, 호출 스택과 변수를 보여 줍니다. Python은 debugpy, Go는 delve, 컴파일된 프로그램은 lldb-dap을 쓰며, 각각 설치되어 있어야 합니다. mu.json의 debugAdapters에 직접 추가할 수도 있습니다. 한 번에 하나만 실행하며, 세션과 함께 끝납니다. |
maxFrames | 20 | 멈췄을 때 표시할 스택 프레임 수. 범위는 1부터 200까지예요. |
maxVariables | 50 | 범위당 표시할 변수 수. 범위는 5부터 1000까지예요. |
debugOutputChars | 4000 자 | 결과 1개에 담을 프로그램 출력. 이보다 많으면 끝부분만 남깁니다. 범위는 500부터 100000까지예요. |
debugWaitMs | 30000 밀리초 | 프로그램이 멈출 때까지 최대 대기 시간. 그때까지 멈추지도 끝나지도 않으면 모델에게 아직 실행 중이라고 알립니다. 모델은 일시정지해서 위치를 확인하거나 더 기다릴 수 있습니다. 범위는 1000부터 600000까지예요. |
Google로 로그인(실험적) googleLogin
기본으로 켜짐실험
/login에 두 항목을 추가합니다. Gemini 모델용 Gemini CLI 로그인과, Gemini, Claude, GPT-OSS용 Antigravity 로그인입니다. 이는 Google이 자사 도구용으로 만든 로그인이므로, 다른 프로그램이 사용하면 Google 약관을 위반해 계정이 제한되거나 정지될 수 있습니다. 그래서 로그인 전에 위험을 먼저 알리고, 동의할 때만 진행합니다. 공식 경로에는 이런 절차가 필요 없습니다. Gemini API 키(공급자 google)와 Vertex AI(공급자 google-vertex, gcloud로 로그인)입니다.
| 옵션 | 기본값 | 의미 |
|---|---|---|
geminiCli | true | Gemini CLI 로그인. Gemini 모델을 개인 계정은 무료 등급으로, Code Assist 라이선스가 있으면 라이선스로 사용합니다. |
antigravity | true | Antigravity 로그인. Gemini, Claude, GPT-OSS를 사용합니다. 로그인하면 계정이 쓸 수 있는 모델에 맞춰 목록이 바뀝니다. |