GEODE . 문서
GitHub
레퍼런스
레퍼런스

CLI와 슬래시 명령

geode CLI 전체, 세션 안 슬래시 명령과 thin/daemon 라우팅, geode-mcp 서버 표면까지 한 페이지로 정리한 레퍼런스입니다.

GEODE의 진입점은 둘입니다. geode(Typer CLI)와 geode-mcp(stdio MCP 서버). 둘 다 pyproject.toml[project.scripts]에 선언되어 있고, 각각 core/cli/__init__.py core/mcp_server.py로 들어갑니다. 이 페이지는 그 두 표면의 전체 목록입니다.

먼저 정직한 한계 둘. 셸 원샷 geode "프롬프트"는 지원하지 않습니다. 인식되지 않는 첫 토큰은 click의 "No such command" 오류로 끝납니다. 자유 텍스트는 bare geode로 들어간 대화형 REPL 안에서 입력합니다. 그리고 geode serve stop 같은 서브커맨드는 없습니다. 데몬 정지 로직은 core/cli/commands/lifecycle.py에 있지만 Typer 표면에 노출되어 있지 않습니다.

2-프로세스 구조

geode (thin CLI)  ── Unix socket IPC (~/.geode/cli.sock) ──→  geode serve (데몬)
  자유 텍스트 → send_prompt 스트리밍                            AgenticLoop, MCP, 스케줄러,
  슬래시 → core/cli/routing.py 가 THIN/daemon 결정              메신저 폴러, CLIPoller

bare geode는 환영 화면을 띄우고 소켓을 조사한 뒤, 데몬이 없으면 자동 기동합니다(start_serve_if_needed, core/cli/ipc_client.py). 동시 기동 경합은 pidfile flock이 막습니다. 그 뒤 thin REPL이 IPC로 붙습니다. 프로토콜은 줄 단위 JSON이고 서버 쪽 상대는 CLIPoller(core/server/ipc_server/poller.py)입니다.

환영 화면과 라이브 상태

bare geode가 띄우는 환영 화면은 core/cli/welcome.py_welcome_screen이 그립니다. 먼저 Geodi 브랜드 블록(core/ui/mascot.py render_mascot)이 나옵니다. 손으로 찍은 픽셀아트 Geodi(로즈 아졸로틀, core/ui/geodi_art.py)를 truecolor 하프블록 스프라이트로 그리고, 오른쪽에 ◆ GEODE v{version} 마크, 모델 · cwd, /help for commands · type naturally 힌트, 그리고 라우팅이 초기화돼 있으면 활성 플랜/쿼터 한 줄을 붙입니다. 이어서 .env 자동 생성, ChatGPT 구독 OAuth 감지, readiness 점검(문제만 표시 — 조용하면 정상), 프로젝트 기억과 사용자 프로파일 초기화가 돌아갑니다.

실행 중 라이브 상태는 core/ui/event_renderer.py가 그리고, 스피너는 core/ui/spinner_glyph.py 단일 소스에서 옵니다(direct 모드 GeodeStatus와 IPC thin-client 트래커가 공유). 시그니처 스피너는 모양이 바뀌지 않는 로즈 젬 입니다. 글리프를 회전시키는 대신 raised-cosine 밝기 밴드가 라벨 위를 2초 주기로 좌→우로 활강합니다(단일 색조, 무지개 아님 — 모양을 순환시키는 글리프는 기계적으로 읽힌다는 Codex/Claude Code의 교훈).

생각 라벨은 맥락을 따릅니다(_thinking_label): reflection > 활성 플랜 스텝 > 위트 순서로, 리플렉션 중에는 Reflecting…, 그다음 진행 중인 플랜 스텝 텍스트(잘림), 없으면 턴 시작 시각으로 시드된 안정적 위트 동명사(Crystallizing, Faceting …) 하나가 턴 내내 유지됩니다. (round N) 접미사와 라이브 (12s) 타이머가 붙습니다. plan_step/replan 이벤트가 오면 진행 플랜 체크리스트(completed / in_progress / pending)가 그려지고, 해당 페이즈 동안 thinking·tool 출력 위에 고정(pinned)된 채 그 아래에 라이브 활동 영역(도구 통계, 알림)이 갱신됩니다.

HITL 승인 프롬프트(core/cli/ipc_client.py _handle_approval_request)는 스피너를 잠시 멈추고 ◆ Approval · <tool> (<category>) 헤더에 한 줄 요약, 그리고 y allow · n deny · a always-allow 키 안내를 로즈 색으로 띄웁니다.

최상위 명령

명령용도주요 옵션코드
geode환영 화면, 필요 시 serve 자동 기동, thin REPL 진입--version, --continue, --resume <id>core/cli/__init__.py
geode version버전 출력없음core/cli/typer_commands.py
geode about실행 중인 것의 한 화면 요약. EFFECTIVE 모델, env가 toml을 가리는 경고, 경로, 데몬 소켓 상태없음core/cli/typer_commands.py
geode setup최초 설정 마법사. ChatGPT 구독 OAuth(~/.codex/auth.json)를 API 키보다 먼저 감지--reset/-rcore/cli/onboarding.py
geode doctor [target]진단. 기본 bootstrap은 Python, PATH, 자격, 데몬 점검. slack은 게이트웨이 점검positional bootstrap | slackcore/cli/doctor_bootstrap.py, core/cli/doctor.py
geode update설치 경로 판별 후 uv patch 업데이트 또는 소스 재설치. 떠 있던 serve는 재시작--latest, --dry-run, --force/-f, --restart/--no-restartcore/cli/commands/lifecycle.py
geode uninstall런타임 데이터와 CLI 제거--dry-run, --force/-f, --keep-config, --keep-datacore/cli/commands/lifecycle.py
geode init.geode/ 프로젝트 골격 생성. 프로젝트 타입 자동 감지--force/-fcore/cli/typer_init.py
geode history실행 이력과 월간 비용 요약--limit/-n, --month/-m YYYY-MMcore/llm/usage_store.py
geode serve헤드리스 게이트웨이 데몬. 메신저 폴러, 스케줄러, IPC 소켓. gateway_enabled 필요--poll/-pcore/cli/typer_serve.py
geode auditPetri × GEODE 정렬 감사 실행--judge/-j, --auditor/-a, --target/-t, --seeds/-s, --max-turns/-m, --seed-select, --dim-set, --dry-run/--live, --unrestricted, --cache/--no-cacheplugins/petri_audit/cli_audit.py
geode petri-archivepetri eval 로그를 워크트리 밖으로 보존하고 YAML 요약 작성--raw-archive-dir, --summary-dirplugins/petri_audit/cli_audit.py
geode outer-bundle자기개선 루프 활동을 하나의 타임라인으로 묶어 보는 뷰어--limit, --jsoncore/cli/outer_bundle.py
geode reindex전 프로젝트 sessions.db에서 ~/.geode/search/global.db FTS5 인덱스 재구축--projects-rootcore/cli/commands/reindex.py
geode campaign3-arm 자기개선 캠페인 드라이버의 thin 포워더--n, --k, --arms, --dry-runcore/self_improving/campaign.py

서브커맨드 그룹

그룹서브커맨드용도코드
geode adapterslist / detect-model / stats등록된 LLM 어댑터(PAYG, 구독, CLI 경로) 점검과 디스패치 통계core/cli/commands/adapters.py
geode skilllist / create / remove / show3단계 스킬 관리. builtin core/skills/, 프로젝트 .geode/skills/, 개인 ~/.geode/skills/core/cli/commands/skill.py
geode configexplain [key] / migrate-petri-toml설정 레이어별 후보 표. 어느 레이어가 이기고 무엇이 가려졌는지 보여 줍니다core/cli/commands/config.py
geode seedsassemblecycle-input 시드 풀 조립. repo 체크아웃 전용 래퍼core/cli/commands/seed_pool.py
geode hubbuild자기개선 허브 정적 페이지 빌드. repo 체크아웃 전용 래퍼core/cli/commands/seed_pool.py
geode audit-seedsgenerate / resume / config타깃 dim 하나에 대한 시드 생성 파이프라인. 페이즈별 체크포인트에서 재개 가능plugins/seed_generation/cli.py

데몬 정지, 상태, 청소는 core/cli/commands/lifecycle.py stop_serve / show_status / do_clean이 구현하지만, Typer 서브커맨드로는 노출되지 않습니다. geode update가 stop과 재시작을 수행하고, /status가 데몬과 디스크 사용량 블록을 포함합니다. 수동 정지는 pkill -f "geode serve"입니다.

슬래시 명령

SoT는 core/cli/commands/_state.py COMMAND_MAP이고, 실행 위치는 core/cli/routing.pyCOMMAND_REGISTRY가 결정합니다. THIN은 CLI 프로세스에서 로컬로 실행되고(터미널과 브라우저가 붙어 있어야 하는 명령), 나머지는 IPC send_command로 데몬에 전달됩니다.

명령별칭실행 위치용도핸들러
/helpTHIN대화형 도움말core/cli/commands/_state.py
/loginTHIN플랜과 자격 대시보드. openai, anthropic, google, add, use, route, quota, sourcecore/cli/commands/login.py
/key <value>THINPAYG API 키 빠른 등록(/login의 legacy 별칭)core/cli/commands/key.py
/modelTHIN모델 확인과 전환. Tab으로 역할(primary, reflection, mutator) 순환core/cli/commands/model.py
/auditTHINgeode audit의 슬래시 형태plugins/petri_audit/cli_audit.py
/audit-seedsTHIN시드 후보 생성 파이프라인plugins/seed_generation/cli.py
/self-improving/silTHIN자기개선 루프 운영. status, run, history, rollback, config, source, matrixcore/cli/commands/self_improving.py
/recallTHIN기억 풀 list / show / savecore/cli/commands/recall.py
/quit/exit, /qdaemon세션 비용 요약과 함께 종료core/cli/dispatcher.py
/verbosedaemonverbose 토글core/cli/dispatcher.py
/petridaemonPetri 역할 × 모델 × 소스 확인과 전환core/cli/commands/petri.py
/schedule/scheddaemon예약 자동화 관리core/cli/commands/schedule.py
/triggerdaemon이벤트와 cron 트리거 관리core/cli/commands/trigger.py
/statusdaemon모델, 키 상태, MCP 서버, 데몬과 디스크 사용량core/cli/dispatcher.py
/mcpdaemonMCP 서버 상태, 도구, 추가core/cli/commands/mcp.py
/skillsdaemon스킬 목록, 추가, 리로드core/cli/commands/skills.py
/skill <name>daemon스킬 호출. context:fork 서브에이전트 실행 지원core/cli/commands/skills.py
/costdaemonLLM 비용 대시보드와 예산core/cli/commands/cost.py
/resumedaemon중단된 세션 재개core/cli/commands/session.py
/context/ctxdaemon조립된 컨텍스트 계층 표시core/cli/commands/session.py
/applydaemon지원서 관리core/cli/commands/session.py
/compactdaemon대화 컨텍스트 압축core/cli/commands/session.py
/cleardaemon대화 이력 삭제. thin 클라이언트는 IPC 모드에서 --force를 자동 부착core/cli/commands/session.py
/tasks/task, /tdaemon사용자 태스크 목록core/cli/commands/tasks.py

/login이나 /key가 로컬에서 끝나면 thin 클라이언트가 데몬에 인증 상태 리로드를 통지합니다. 인자 없는 /model은 TTY에서 picker를 로컬로 띄운 뒤 선택 결과만 데몬에 전달합니다(core/cli/__init__.py).

picker 키 계약(core/cli/effort_picker.py): Tab이 역할 탭(Primary, Reflection, Mutator)을 순환하고 ↑↓가 모델, ←→가 effort를 고릅니다. Space는 포커스된 역할에 적용하고 picker를 유지하므로 세 역할을 한 세션에서 모두 설정할 수 있습니다. Enter는 staged 선택까지 전부 확정하고 닫으며, Esc는 staged 선택을 포함해 전부 폐기합니다. provider가 바뀌는 전환은 credential source(payg, subscription)를 새 provider 기준으로 다시 추론합니다. /login codex 직후의 GPT 전환이 구독 쿼터로 라우팅되는 근거입니다.

geode-mcp 서버

geode-mcp는 GEODE를 외부 MCP 호스트(Claude Code 등)에 도구로 노출하는 stdio 서버입니다(core/mcp_server.py). repo 루트의 .mcp.json이 이 프로젝트에서 연 Claude Code 세션에 자동 등록하고, 수동 등록은 claude mcp add geode -- geode-mcp입니다. 도구 설명은 core/tools/mcp_tools.json에서 로드합니다.

도구파라미터동작
run_agentprompt, time_budget_sGEODE 에이전틱 원샷 1회 실행(run_agentic_oneshot, core/cli/bootstrap.py). text, rounds, termination_reason 반환
self_improving_status없음읽기 전용. 승격된 baseline.json(promoted SoT, 최신 측정이 아님)과 최근 mutations.jsonl
self_improving_propose없음스캐폴드 변이 1건 제안. 아무것도 쓰지 않고 diff와 rationale만 반환
self_improving_applymutation_id2단계 계약의 확인 단계. 같은 서버 세션 안의 보류 제안만 소비하고, 모르는 id는 {applied: false}
query_memoryqueryGEODE 메모리 계층 검색(core/memory/project.py)
get_health없음버전, 모델, 자격 상태. *_credential_source 필드가 OAuth와 CLI 레인도 정직하게 보고
리소스 geode://soul없음SOUL.md 내용. 없으면 빈 문자열

실패 모드

증상원인해법
geode "..."가 No such command원샷 미지원bare geode로 REPL에 들어가 자유 텍스트를 입력합니다.
geode serve 기동 거부gateway_enabled 꺼짐~/.geode/.envGEODE_GATEWAY_ENABLED=true를 추가합니다.
배너 모델과 응답 모델 불일치오래된 데몬 둘 이상이 소켓을 두고 경합pkill -f "geode serve" 후 재진입합니다. ps aux | grep은 긴 경로가 잘려 못 잡습니다.
geode seeds assemble이 exit 2wheel 설치에는 scripts/가 없음repo 체크아웃에서 실행합니다.

다음