새 버전데스크톱 v0.1.7: 영역별로 묶은 설정, 새 설정 가이드, mu-agent 0.1.8 내장
mu

μ · Only what's needed.

작업에 꼭 필요한 컨텍스트만

mu는 코딩 에이전트예요. 작고 빠른 판정기 Jev가 턴마다 큰 모델 대신 수십 개의 작은 결정을 내려요. 무엇을 컨텍스트에 남길지, 이 명령이 안전한지, 일이 정말 끝났는지. 큰 모델은 주의력을 본래의 일에 써요.

$ npm i -g mu-agent

Node.js 22.19 이상이 필요해요. 그다음 프로젝트 폴더에서 mu를 실행하세요. 처음에는 mu setup으로 모델을 연결해요.

macOS · Windows · Linux · 오픈 소스(MIT + Apache-2.0) · pi 기반

실제 한 턴 보기

MU · 실제 한 턴

먼저 판정하고, 그다음 실행해요

계획 하나를 부탁했는데, 컨텍스트에는 도구 상자가 통째로 실려 있어요. 모델은 달마다 코드를 더 잘 쓰지만, 그 보고는 점점 읽기 어려워져요. mu는 일을 나눠요. Jev가 판정하고, 큰 모델이 일하고, 쉽게 말한다는 이유로 고른 모델이 지금 어디까지 왔는지 알려 줘요.

~/slugify — mu
  4     .toLowerCase()                                                              
  5     .replace(/[^a-z0-9]+/g, "-")                                                
 -6     .replace(/^-/, "");                                                         
 +6     .replace(/^-+|-+$/g, "");                                                   
  7 }                                                                               
                                                                                    

                                                                                    
 $ cd /Users/Shared/mu/slugify && npm test 2>&1                                     
                                                                                    
 ... (10 earlier lines, ctrl+o to expand)                                           
 ℹ fail 0                                                                           
 ℹ cancelled 0                                                                      
 ℹ skipped 0                                                                        
 ℹ todo 0                                                                           
 ℹ duration_ms 84.5005                                                              
                                                                                    
 Took 0.3s                                                                          
                                                                                    

 All 4 tests pass now. The bug was in src/slugify.js — the final .replace() only
 stripped a leading dash (/^-/) but not a trailing one. Changed it to /^-+|-+$/g to
 strip dashes from both ends.

────────────────────────────────────────────────────────────────────────────────────

────────────────────────────────────────────────────────────────────────────────────
~/slugify (master)
↑6.2k ↓643 R19k CH94.0% $0.034 (sub) 2.5%/200k (auto)     claude-sonnet-4-6 • medium
jev-1.13-free active: multi_step_task -> heavy 752ms Permissions: Full access
실제 녹화: mu 0.1.8, 판정기는 무료 Jev, 모델은 Claude Sonnet 4.6.
데스크톱 앱의 하이브 탭: 비 4마리가 나란히 조사하고, 화살표는 Jev가 전달할 만하다고 판정한 발견이에요
데스크톱 앱의 하이브 탭: 화살표 하나하나가 Jev가 전달할 만하다고 판정한 발견이에요.
쉬운 말 보드: 무엇을 하고 있는지, 어디까지 왔는지, 그 아래로 이어지는 진행 기록
쉬운 말 보드: 무엇을 하고 있는지, 어디까지 왔는지, 그리고 이어지는 진행 기록.

말을 걸 때

Jev가 먼저 읽어요

새 작업일까요, 후속 질문일까요, 정정일까요? 실행 중에 들어온 메시지는 지금 끊어야 할까요? 스킬과 도구를 불러와야 할까요, 아니면 한 문장으로 답할 수 있을까요?

◆ jev-1.13-free multi-step task · heavy gear · 752 ms

실제 한 턴이에요. "Run the tests and fix the failing ones" 요청이 들어오고, 1초도 안 되어 Jev가 답해요. 여러 단계 작업, 무거운 구성. 작업에 필요 없는 스킬과 MCP 서버는 필요해질 때까지 컨텍스트에 들어오지 않아요.

도구가 답할 때

출력은 먼저 Jev를 거쳐요

테스트 한 번, 검색 한 번이면 수백 줄이 쉽게 나와요. Jev는 청크마다 지금 무엇이 중요한지 판정해요. 실패한 케이스는 남고, 같은 내용을 되풀이하는 로그는 빠져요. 빠진 부분은 포인터를 남기고 보관되어, 필요할 때 다시 꺼낼 수 있어요.

웹 페이지와 MCP 결과에 모델을 겨냥한 지시가 있으면, 모델이 읽기 전에 막아요.

실행하기 전에

멈출 것은 멈추고, 물어야 할 것만 물어요

명령을 실행하기 전마다 Jev는 그 명령이 되돌릴 수 없는 일을 하는지, 여러분이 정한 규칙을 넘는지 판정해요. 권한 모드는 전체 접근, Jev 승인, 최소 권한 세 가지이고, 언제든 바꿀 수 있어요. Jev 승인에서는 여러분이 꼭 봐야 하는 것만 묻고, 나머지는 그대로 실행해요.

판정은 모델이 다음에 무엇을 할지를 바꿀 뿐, 여러분에게 물어볼지는 절대 바꾸지 않아요.

턴이 끝날 때

끝났다는 건 검증했다는 뜻이에요

모델이 다 했다고 하면, mu는 그걸 검증한 것이 있는지, 턴이 옆길로 새지 않았는지, 체크포인트로 되돌아가야 하는지 확인해요.

/goal <condition>을 쓰면 조건이 충족될 때까지 에이전트가 계속 일해요. 충족됐는지는 큰 모델이 확인하고, Jev가 폴백을 맡아요. 같은 오류가 계속 되풀이되면, 이 방법이 막다른 길인지 Jev가 판정해요.

하이브

여러 비가 일하고, Jev는 그 가운데에 있어요

에이전트 여럿이 어려운 문제 하나를 함께 풀 때, 일을 나눠 주기는 쉬워요. 어려운 건 소통이에요. 아무 말도 하지 않으면 각자 같은 막다른 길로 들어가요. 모든 걸 말하면 모든 컨텍스트가 다른 에이전트의 잡담으로 가득 차요.

mu의 하이브에서는 Jev가 발견 하나하나를 판정해요. 공유할 만한가, 이 비에게 중요한가? 그렇다고 판정된 뒤에야 그 발견이 컨텍스트로 다른 비에게 닿아요. 나중 발견이 앞선 발견을 뒤집으면, 그 발견을 들은 모든 비에게 정정이 전달돼요.

쉬운 말 보드

일하는 것과 보고하는 것은 다른 일이에요

모델은 강해지는데, 보고는 점점 기계를 위한 메모처럼 읽혀요. mu에서 일하는 모델은 자기 방식대로 계속 일해요. 도구 호출 몇 번마다 Jev가 현장을 읽고 정말 새 소식인 것을 골라, 쉽게 말한다는 이유로 고른 모델에게 넘기고, 그 모델이 지금 어디까지 왔는지 알려 줘요.

실행이 끝나면 "끝났다"만이 아니라, 실제로 무엇을 했는지가 보여요.

일부러 뺀 것

mu가 하지 않는 것

큰 모델의 주의력은 한정되어 있고, 컨텍스트도 마찬가지예요. 아래는 mu가 하지 않기로 했거나, 다르게 하기로 한 것들이에요.

01

더 묻지 않아요

Jev의 판정은 모델이 다음에 무엇을 할지를 바꿀 뿐, 다시 와서 여러분에게 물을지는 절대 바꾸지 않아요.

02

프롬프트마다 도구 상자를 싣지 않아요

첫 메시지를 판정해요. 잡담인지, 후속 질문인지, 해야 할 일인지. 필요 없는 스킬과 MCP 서버는 컨텍스트에 들어오지 않아요.

03

요약으로 압축하지 않아요

컨텍스트가 커지면 오래된 결과는 요약하지 않고 내려놓아요. 캐시가 만료되기 전에는 갱신할 가치가 있는지 mu가 판정해요.

04

판정기를 고정하지 않아요

판정 지점 38개, 지점마다 스위치와 판정기가 따로 있어요. 무료 Jev, 로컬 Laya, 또는 어떤 LLM이든 쓸 수 있어요.

05

시작할 때 키가 필요 없어요

판정기 키가 없으면 OpenCode Zen의 무료 Jev가 답하고, mu가 하루에 한 번 그 사실을 알려 줘요.

06

새 기반을 만들지 않아요

명령줄은 pi 위에 만들어서 pi의 모델, 확장, 스킬, 세션 트리가 그대로 있어요. 데스크톱 앱은 AionUi 위에 만들었어요.

판정 지점 38개가 각각 무엇을 묻고 무엇을 바꾸는지

그 밖에

명령줄과 앱은 계정, 설정, 교훈을 함께 써요

대화 가져오기Codex와 Claude Code의 대화를 가져와 mu에서 이어 가세요.
구독 로그인ChatGPT, Claude, Grok, Google에 앱 안에서 로그인해요. 키를 이리저리 복사할 필요가 없어요.
교훈여러분이 바로잡은 것과 에이전트가 피해 간 함정을 남겨 둬요. 불려 나오지만 한 번도 지켜지지 않은 교훈은 스스로 사용 중지돼요.
내장 브라우저Jev가 한 단계씩 조작해요. 페이지를 보고, 한 번 판정하고, 실행해요. 제출이나 결제 전에는 멈추고 물어요.
판정 장부모든 판정과 걸린 시간이 남아요. /status, mu ledger, 앱의 판정 탭에서 볼 수 있어요.
인터페이스 언어 13개데스크톱 앱은 English, 简体中文, 繁體中文, 日本語, 한국어 외 8개 언어를 지원해요.

참여하기

mu를 함께 더 좋게 만들어요

Jev 키 나눔은 끝났고, 신청 페이지도 내려갔어요. 이제 mu는 키 없이도 동작해요. 직접 가진 TypeSafe 키나 다른 판정기를 쓰려면 판정기를 보세요.

mu가 쓸모 있다면 GitHub에서 Star를 눌러 주세요

Star 하나가 더 많은 사람이 mu를 찾도록 도와요. 코드, 토론, 모든 릴리스가 저장소에 있어요.

GitHub에서 Star 누르기464