본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 15. 06:37

genai-io/san

요약

San은 코딩 및 다양한 작업을 수행하기 위해 설계된 터미널 네이티브 통합 런타임입니다. Go 언어로 작성되어 가볍고 빠르며, LLM, 검색 백엔드, 페르소나, 확장 기능을 플러그인 형태로 지원하는 자기 진화형 에이전트 환경을 제공합니다.

핵심 포인트

  • Go 기반의 단일 바이너리로 실행 환경 의존성 없이 어디서나 구동 가능
  • LLM, 검색, 페르소나, 기술(MCP 포함)을 자유롭게 교체하는 플러그형 구조
  • 작업 내용을 메모리와 기술로 추출하여 스스로 성장하는 자기 진화형 기능
  • 이벤트 기반 조정 및 세션 지속성을 통한 병렬 서브에이전트 실행 지원
  • 지연 시간 단축을 위한 프롬프트 예측 및 로컬 웹 UI 인스펙터 제공

San은 코딩 및 그 이상의 작업을 수행하는 **특화된 에이전트를 위한 터미널 네이티브 통합 런타임 (unified runtime)**이며, 다섯 가지 플러그형 기둥인 LLM, 검색 백엔드 (search backends), 페르소나 (personas), 기술 및 확장 기능 (skills & extensions) (기술, 플러그인, MCP 서버, 서브에이전트), 그리고 사용자가 작업함에 따라 함께 성장하는 자기 진화형 (self-evolving) 에이전트를 기반으로 구축되었습니다. Go 언어로 작성되었습니다.

*이름의 유래 — San은 三("셋")으로 쓰이고 ☰로 그려집니다. 도덕경(Dao De Jing)의 三生万物 — "셋이 만물을 낳는다"에서 따왔습니다: 3단계 루프(추론(reason) → 행동(act) → 관찰(observe))를 실행하며 어떤 에이전트로든 변할 수 있는 하나의 런타임입니다. 명령어는 *

san

LLM 제공업체 (LLM providers)— Anthropic, OpenAI, Google, DeepSeek, Moonshot, Alibaba, MiniMax, Z.ai (GLM), SenseNova, Mimo, Ollama (로컬); /model 명령어를 통해 교체 가능

검색 백엔드 (Search backends)— Exa, Tavily, Brave, Serper; /search 명령어를 통해 교체 가능

페르소나 (Personas)— 사용자 또는 프로젝트 범위로 지정된 Markdown 정체성; /identity 명령어를 통해 교체 가능

(상세 내용).기술 및 확장 기능 (Skills & extensions)— Claude Code 기술, 플러그인 및 MCP 서버를 수정 없이 실행; 샌드박스화된 서브에이전트; 라이프사이클 훅 (shell, LLM, agent, HTTP); 자동 로드되는 프로젝트 메모리.자기 진화형 (Self-evolving)— 몇 번의 턴이 지날 때마다 백그라운드 리뷰어가 최근 작업 내용을 영구적인 메모리와 재사용 가능한 기술로 추출하여, 사용자가 작업함에 따라 에이전트가 레벨업합니다.(Level 1 사용 가능; 더 깊은 레벨은 준비 중입니다.)

어디서나 실행 가능 (Runs anywhere)— 런타임 의존성이 없는(Node.js나 Python 불필요) 단일 ~12 MB 바이너리. 네이티브 Go: ~0.01초의 콜드 스타트(cold start), ~32 MB의 베이스라인, 그리고 동일한 파일이 노트북, 엣지 디바이스 또는 scratch 컨테이너에서 변경 없이 실행됩니다 (footprint · benchmark).
이벤트 기반 조정 (Event-driven coordination)— 발행/구독(pub/sub) 허브를 통한 병렬 서브에이전트 실행 (architecture).
세션 지속성 (Session persistence)— 자동 저장, 재개, 포크(fork) 및 자동 컨텍스트 압축.
프롬프트 예측 (Prompt prediction)— 지연 시간을 줄이기 위해 다음에 올 가능성이 높은 프롬프트를 투기적으로 완성(Speculative completion).
세션 인스펙터 (Session inspector)— 트랜스크립트 재생, 시스템 프롬프트 포렌식 및 활성 세션의 라이브 테일(live-tail)을 위한 로컬 웹 UI (san inspector).

curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash

업그레이드하려면 다시 실행하세요. 삭제하려면:

curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash -s uninstall

기타 방법

Windows (PowerShell)

irm https://raw.githubusercontent.com/genai-io/san/main/install.ps1 | iex

업그레이드하려면 다시 실행하세요. 삭제하려면:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/genai-io/san/main/install.ps1))) uninstall

Go Install

go install github.com/genai-io/san/cmd/san@latest

소스에서 빌드 (Build from Source)

git clone https://github.com/genai-io/san.git
cd san
go build -o san ./cmd/san
...
san # 대화형 (interactive)
san "explain this function" # 원샷 (one-shot)
cat main.go | san "review" # 파이프 입력 (piped input)
...
항목방법
모델 선택 / 전환/model~/.san/providers.json에 저장
...

API 키의 경우, 일치하는 환경 변수 (env var)를 설정하거나 (아래 Credentials 섹션 참조), 첫 실행 시 프롬프트가 나타나면 붙여넣으세요. 전체 가이드: docs/guides/getting-started.md

.

설정(Config)은 ~/.san/ (사용자) 및 <project>/.san/ (프로젝트, 사용자 설정 재정의)에 저장됩니다. 프로젝트 루트에 있는 SAN.md 또는 CLAUDE.md는 시스템 프롬프트(system prompt)로 자동 로드됩니다.

Credentials (인증 정보)

서비스변수
Anthropic (Claude)ANTHROPIC_API_KEY 또는 Vertex AI
OpenAI (GPT, o-series, Codex)OPENAI_API_KEY
Google (Gemini)GOOGLE_API_KEY
Moonshot (Kimi)MOONSHOT_API_KEY
DeepSeek (DeepSeek V4)DEEPSEEK_API_KEY
Alibaba (Qwen)DASHSCOPE_API_KEY
MiniMaxMINIMAX_API_KEY
Z.ai (GLM)BIGMODEL_API_KEY
Ollama (로컬)OLLAMA_BASE_URL (기본값 http://localhost:11434/v1 )
SenseNovaSENSENOVA_API_KEY
MimoMIMO_API_KEY
Exa search없음 (기본값)
Tavily searchTAVILY_API_KEY
Brave searchBRAVE_API_KEY
Serper searchSERPER_API_KEY

디렉토리 구조 (Directory layout)

사용자 수준 (~/.san/):

providers.json # 제공자 연결 및 현재 모델
settings.json # 권한, 훅 (hooks), 환경 변수, 신원 (identity)
skills.json # 스킬 상태
...

프로젝트 수준 (.san/):

settings.json # 권한 (Permissions), 훅 (hooks), 비활성화된 도구 (disabled tools)
mcp.json # MCP 서버 정의 (MCP server definitions)
identities/*.md # 프로젝트 범위의 페르소나 (user-level 오버라이드)
...

Apple Silicon 기반의 Claude Code v2.1.112와 동일한 모델 (claude-sonnet-4-6)을 비교했을 때:

지표 (Metric)SanClaude Code이점 (Advantage)
다운로드 크기 (Download size)12 MB63 MB (+ Node.js 112 MB)5배 더 작음
...

두 도구 모두 유사한 기능(훅 (hooks), 스킬 (skills), 플러그인 (plugins), 세션 (session), MCP, 등)을 갖추고 있습니다. 성능 차이는 Node.js V8/JIT/GC 런타임 오버헤드 대비, Go의 네이티브 컴파일 (native compilation), 최소한의 아키텍처 설계 (minimal architecture design), 그리고 가벼운 프롬프트 엔지니어링 (lean prompt engineering)에서 비롯됩니다.

전체 상세 내용 확인: docs/operations/benchmark.md

  • 문서 인덱스 (Documentation Index) — 아키텍처, 기능, 운영 및 참조 맵
  • 아키텍처 (Architecture) — 아키텍처 진입점 및 읽기 순서
  • 패키지 맵 (Package Map) — 패키지 소유권 및 의존성 경계
  • 시스템 프롬프트 (System Prompt) — 슬롯 모델 (Slot model), 신원 (identity), 스킬/에이전트 주입 (skill/agent injection)
  • 서브에이전트 (Subagents) · 스킬 (Skills) · 플러그인 (Plugins) · MCP
  • 훅 (Hooks) · 권한 (Permissions) · 태스크 (Tasks)
  • 인스펙터 (Inspector) — 트랜스크립트 재생 및 디버깅을 위한 로컬 웹 UI
  • docs/packages/ 하위의 패키지별 설계

— 패키지 인덱스 (Package Index)부터 시작

  • Claude Code — Anthropic의 AI 코딩 어시스턴트
  • Aider — 터미널에서의 AI 페어 프로그래밍
  • Continue — 오픈 소스 AI 코드 어시스턴트

두 가지 참여 경로 — 중국 커뮤니티를 위한 WeChat, 그 외 모두를 위한 Slack:

기여를 환영합니다! 가이드라인은 CONTRIBUTING.md를 참조하세요.

Apache License 2.0 - 자세한 내용은 LICENSE를 참조하세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0