tontinton/maki

An efficient AI coding agent extendable by neovim-like Lua plugins

Maki란?

Maki는 터미널 기반 AI 코딩 어시스턴트로, 대규모 언어 모델 제공자(Claude, OpenAI, Gemini, Ollama 등)와 통신하여 코드 작성, 읽기, 리팩토링을 돕습니다. 주요 장점은 컨텍스트 토큰 효율성입니다 – 원활하고 기능이 풍부한 사용자 경험을 제공하면서 모델에 전송되는 텍스트 양을 가능한 한 낮게 유지합니다.


프로젝트의 핵심 아이디어

아이디어 Maki 구현 방식
토큰 절약 • index는 tree-sitter로 파일을 파싱하고 전체 파일 대신 높은 수준의 스켈레톤(함수 위치)만 전송합니다.
• code_execution은 샌드박스 처리된 인터프리터(monty)를 실행하여 중간 결과를 LLM 컨텍스트에 넣지 않고 데이터를 변환할 수 있습니다.
• task는 에이전트가 하위 작업에 약하거나 강한 모델을 선택할 수 있게 하여, 정말 필요할 때만 무거운 작업에 비용을 지불하게 합니다.
빠르고 가벼운 UI ratatui(Rust TUI 라이브러리)로 구축. JavaScript 없음, 60 FPS 렌더링, SIMD 기반 스플래시 화면.
확장 가능 플러그인은 Lua로 작성됩니다(Neovim과 유사). 저장소에는 내장 플러그인이 포함되어 있으며 사용자 정의 플러그인용 공개 API를 제공합니다.
투명성 및 안전 모델이 읽는 내용을 정확히 표시하고, tree-sitter로 bash 명령을 파싱하여 권한을 제한하고, 웹 가져오기 시 SSRF를 보호하며, 되돌릴 수 있는 채팅 기록을 제공합니다.
크로스 프로바이더 상업용 및 자체 호스팅 LLM 백엔드(Anthropic, OpenAI, Gemini, Ollama, llama.cpp, Mistral 등)의 긴 목록과 추가 제공자용 플러그인 시스템을 지원합니다.

실제로 사용할 주요 기능

기능 효과
컨텍스트 효율적인 index 도구 파일의 개요를 빠르게 얻고(예: 함수 X는 150-165행), Maki가 필요한 부분만 읽게 합니다.
샌드박스 처리된 code_execution 도구 어시스턴트 내에서 작은 코드 조각을 실행합니다. 결과는 LLM 프롬프트에 포함되지 않아 토큰 수를 낮게 유지합니다.
하위 에이전트 task 도구 작업을 "약한", "중간", "강한" 모델에 자동으로 위임하여 저렴한 작업에 비용을 절약합니다.
풍부한 TUI 60 FPS, 퍼지 검색(Ctrl-F), 현재 채팅을 중단하지 않고 명령을 실행하는 /btw, 디렉토리를 변경하는 /cd, 이미지 첨부, 26테마, 세션 재개, "되감기" 단축키(Esc-Esc).
권한 인식 명령 처리 Maki는 git diff && rm -rf /와 같은 명령을 파싱하고 이해할 수 있는 권한(예: git *)만 부여합니다. 우회하려면 --yolo를 사용하세요.
장기 메모리 도구 /memory로 사실을 저장하여 어시스턴트가 파일을 다시 읽지 않고도 나중에 기억할 수 있습니다.
OpenTelemetry 내보내기 Claude Code와 동일한 형식을 따르는 선택적 텔레메트리로, 관찰 가능성에 유용합니다.
CLI 전용 모드 --print --output-format stream-json으로 UI 없이 Maki를 실행하고 JSON 출력을 다른 도구에 파이프할 수 있습니다.

누가 혜택을 받을까요?

사용자 유형 Maki가 도움이 되는 이유
저사양 머신의 개발자 TUI는 가볍고 즉시 시작되며 무거운 JavaScript 런타임을 피합니다.
토큰 비용을 주시하는 팀 파일 인덱싱과 task 도구를 사용하면 모델에 전송되는 토큰 수를 크게 줄일 수 있습니다(README는 저자의 워크플로우에서 턴당 165토큰 절약을 인용).
Neovim/Lua 애호가 플러그인은 Lua 기반이며, 프로젝트에는 내장 플러그인과 커뮤니티 쇼케이스가 포함되어 있습니다.
보안에 민감한 사용자 명시적 권한 파싱, SSRF 보호, "모델이 보는 것"에 대한 명확한 철학.
많은 LLM 제공자가 필요한 사람 하나의 바이너리로 수십 개의 상업용 및 자체 호스팅 백엔드와 사용자 정의 제공자 플러그인에 통신할 수 있습니다.

시작 방법(빠른 시작)

  1. 설치 – 가장 쉬운 방법은 Homebrew 포뮬러(brew install maki) 또는 원라이너curl … | sh입니다. 바이너리는 Nix 또는 cargo install로도 사용할 수 있습니다. 바이너리는 ~/.local/bin(Windows에서는 %LOCALAPPDATA%\maki)에 배치됩니다.
  2. API 키 구성 – 사용하려는 제공자의 환경 변수를 설정합니다(예: export OPENAI_API_KEY=…).
  3. 실행 – maki로 TUI가 시작됩니다. 하위 에이전트를 보려면 /tasks, 저장된 사실을 관리하려면 /memory, bash 명령을 실행하려면 !을 사용하세요.
  4. 확장 – Lua 플러그인을 ~/.config/maki/plugins에 넣거나 문서화된 Lua API를 사용하여 직접 작성하세요.

제한 사항 / 미해결 질문

  • README는 "향후 릴리스"에서 bash 출력 필터링을 언급하므로 현재 버전은 일부 bash 출력을 프롬프트에 보낼 수 있습니다.
  • UI는 빠르지만 여전히 터미널 전용입니다. 그래픽 IDE가 필요한 사용자는 편집기와 함께 Maki를 실행해야 합니다.
  • 토큰 절약 주장은 저자의 개인 워크플로우에 기반합니다. 실제 절약은 프로젝트 크기와 언어 지원에 따라 다릅니다.

결론

Maki는 터미널용 토큰 효율적이고 확장 가능한 AI 코딩 어시스턴트를 제공하는 실제이며 적극적으로 유지 관리되는 Rust + Lua 프로젝트입니다. LLM 컨텍스트를 작게 유지하고, 개발자에게 모델이 보는 것을 세밀하게 제어할 수 있게 하며, 다양한 모델 제공자를 지원하는 데 중점을 둡니다. LLM 기반 코드 지원에 많은 비용을 지출하거나 저사양 하드웨어에서 작업한다면 Maki를 살펴볼 가치가 있습니다.


링크

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트