he-yufeng/AnyCoder
요약
AnyCoder는 터미널 기반의 AI 코딩 에이전트로, 사용자가 원하는 어떤 LLM과도 연동하여 사용할 수 있는 도구입니다. LiteLLM을 통해 100개 이상의 모델을 지원하며, 파일 편집, 셸 명령 실행, 코드베이스 검색 등 Claude Code와 유사한 에이전트 기능을 제공합니다.
핵심 포인트
- LiteLLM을 활용하여 DeepSeek, OpenAI, Anthropic, Ollama 등 100개 이상의 LLM 지원
- 파일 읽기/쓰기, 셸 명령 실행, 코드베이스 검색을 수행하는 에이전트 루프 탑재
- 컨텍스트 압축 및 병렬 도구 실행을 통한 효율적인 작업 수행
- 위험한 셸 명령(rm -rf 등)을 감지하고 차단하는 보안 기능 제공
- 세션 저장 및 재개 기능을 통해 연속적인 코딩 작업 가능
터미널에서 사용하는 AI 코딩 에이전트. 어떤 LLM과도 함께 작동합니다.
중문 문서 | 설치 (Installation) | 빠른 시작 (Quick Start) | 지원 모델 (Supported Models)
DeepSeek, Qwen, GPT-5, Claude, Gemini, Kimi, GLM, Ollama 로컬 모델 - 원하는 모델을 선택하여 코딩을 시작하세요.
$ anycoder -m deepseek
> read main.py and fix the broken import
Reading main.py
...
Claude Code는 현존하는 최고의 AI 코딩 도구이지만, Anthropic의 API에서만 작동합니다. DeepSeek(저렴하고 빠름)를 사용하고 싶으신가요? Qwen(중국 개발자에게 훌륭함)은요? Ollama를 통한 로컬 모델은요? 현재로서는 방법이 없습니다.
AnyCoder는 파일 편집, 셸 명령 (shell commands), 코드베이스 검색 (codebase search), 컨텍스트 관리 (context management)와 같은 동일한 경험을 당신이 원하는 어떤 LLM과도 제공합니다.
주요 기능:
- litellm을 통한 100개 이상의 LLM 제공업체 - 하나의 CLI로 모든 모델 사용 가능
- 도구 사용 (tool use) 기능이 포함된 에이전트 루프 (Agent loop) - 파일 읽기, 코드 작성, 명령 실행, 코드베이스 검색 수행
- 스트리밍 출력 (Streaming output) - 응답이 생성되는 대로 토큰 단위로 확인 가능
- 컨텍스트 압축 (Context compression) - 대화가 길어지면 자동으로 압축 (도구 출력물을 먼저 자른 후 요약 수행)
- 찾기 및 바꾸기 편집 (Search & replace editing) - 고유성 검사 및 diff 출력을 통한 정밀한 수정
- 위험한 명령 차단 (Dangerous command blocking) -
rm -rf /, fork bombs,curl | bash등을 감지 - 병렬 도구 실행 (Parallel tool execution) - 여러 개의 독립적인 도구 호출을 동시에 실행
- 세션 지속성 (Session persistence) -
/save및--resume을 사용하여 대화를 저장하고 재개 가능 - 프로젝트 루트에.env파일을 넣어 바로 시작하세요 - 약 1,450줄의 Python 코드 - 읽고, 해킹하고, 확장하기에 충분히 가벼운 규모
pip install anycoder
# API 키 설정 (하나를 선택하세요)
export DEEPSEEK_API_KEY=sk-... # DeepSeek (기본값)
export OPENAI_API_KEY=sk-... # OpenAI
...
또는 프로젝트 루트에 .env 파일을 사용하세요:
# .env
DEEPSEEK_API_KEY=sk-...
ANYCODER_MODEL=deepseek
짧은 별칭(alias) 또는 litellm의 전체 모델 이름을 사용하세요:
짧은 별칭(alias) 또는 litellm의 전체 모델 이름을 사용하세요:
| Alias | Model | Provider |
|---|---|---|
deepseek | DeepSeek Chat (V3) | DeepSeek |
deepseek-r1 | DeepSeek Reasoner (R1) | DeepSeek |
gpt5 / gpt-5 | GPT-5.4 | OpenAI |
gpt4o | GPT-4o | OpenAI |
o4-mini | o4-mini | OpenAI |
claude | Claude Sonnet 4.6 | Anthropic |
claude-opus | Claude Opus 4.6 | Anthropic |
claude-haiku | Claude Haiku 4.5 | Anthropic |
gemini | Gemini 2.5 Flash | |
kimi | Kimi K2.5 | Moonshot AI |
glm | GLM-4 Plus | Zhipu AI |
ollama serve
anycoder -m ollama/llama3.1
anycoder -m ollama/codestral
...
export ANYCODER_API_BASE=https://your-api.com/v1
export ANYCODER_API_KEY=your-key
anycoder -m your-model-name
AnyCoder는 LLM이 자동으로 호출하는 6가지 내장 도구를 가지고 있습니다:
| Tool | 기능 |
|---|---|---|
bash | 위험한 명령어 차단 및 cd 추적 기능을 사용하여 셸 명령 실행 |
read_file | 라인 번호, 대용량 파일의 오프셋/제한을 사용하여 파일 읽기 |
write_file | 새 파일을 생성하거나 기존 파일을 덮어쓰기 |
edit_file | 고유성 확인 및 diff 출력을 지원하는 검색-및-교체 편집 |
glob | 패턴(**/*.py , src/**/*.ts )으로 파일 찾기 |
grep | 정규 표현식(regex)을 사용하여 파일 내용 검색 |
자연어로 원하는 것을 설명하면 됩니다. 에이전트가 어떤 도구를 사용할지 결정합니다.
| Command | 설명 |
|---|---|---|
/model | 현재 모델 표시 |
/model <name> | 대화 중간에 모델 전환 |
/models | 모든 모델 별칭 목록 보기 |
/tokens | 토큰 사용량 및 예상 비용 |
/diff | 이번 세션에서 수정된 파일 |
/compact | 컨텍스트 수동 압축 |
/save [name] | 세션을 디스크에 저장 (이름은 파일 이름이 되기 전에 정리됨) |
/sessions | 저장된 세션 목록 보기 |
/clear | 대화 기록 지우기 |
/help | 모든 명령어 표시 |
/quit | 종료 |
입력: 전송하려면 Enter, 줄 바꿈은 Esc+Enter (여러 줄 입력), 취소는 Ctrl+C, 종료는 Ctrl+D.
총 약 1,450줄입니다. 구성 방식은 다음과 같습니다:
anycoder/
├── cli.py REPL + 슬래시 명령어 (slash commands) 258줄
├── llm.py litellm 스트리밍 래퍼 (streaming wrapper) 184줄
...
에이전트 루프 (agent loop) 작동 방식:
- 사용자 메시지가 대화 기록 (conversation history)에 추가됩니다.
- 기록 (History) + 도구 스키마 (tool schemas)가 LLM으로 전송됩니다 (스트리밍 방식).
- LLM이 텍스트를 반환하면 터미널에 출력됩니다.
- LLM이 도구 호출 (tool calls)을 반환하면, 각 도구가 실행되고 결과가 추가됩니다.
- LLM이 텍스트만 응답할 때까지 (더 이상의 도구 호출이 없을 때까지) 2단계로 이동합니다.
- 컨텍스트 매니저 (Context manager)는 토큰 제한 (token limit)에 도달하면 자동으로 압축을 수행합니다.
2단계 압축 (Two-phase compression) (Claude Code에서 영감을 받음):
- 1단계: 긴 도구 출력물을 잘라냅니다 (대화 구조를 온전하게 유지).
- 2단계: 임계값 (threshold)을 여전히 초과하는 경우 오래된 대화 턴 (conversation turns)을 요약합니다.
환경 변수 (Environment variables) 또는 .env 파일:
| 변수 (Variable) | 설명 (Description) | 기본값 (Default) |
|---|---|---|
ANYCODER_MODEL | 기본 모델 (Default model) | deepseek/deepseek-chat |
ANYCODER_API_BASE | 사용자 정의 API 베이스 URL (Custom API base URL) | - |
ANYCODER_API_KEY | API 키 (API key) | - |
DEEPSEEK_API_KEY | DeepSeek API 키 (DeepSeek API key) | - |
OPENAI_API_KEY | OpenAI API 키 (OpenAI API key) | - |
ANTHROPIC_API_KEY | Anthropic API 키 (Anthropic API key) | - |
GEMINI_API_KEY | Google AI API 키 (Google AI API key) | - |
from anycoder import Agent, Config
config = Config(model="deepseek/deepseek-chat", api_key="sk-...")
agent = Agent(config)
...
| 기능 (Feature) | Claude Code | Cline | Aider | AnyCoder |
|---|---|---|---|---|
| LLM 지원 (LLM support) | Claude 전용 | 다중 (Multi) | 다중 (Multi) | litellm을 통해 100개 이상 |
| ... | VS Code 확장 프로그램 | pip | pip | |
| 파일 편집 (File editing) | 검색 및 교체 (Search & replace) | Diff | Diff | 검색 및 교체 (Search & replace) |
| 컨텍스트 압축 (Context compression) | 예 (Yes) | 아니요 (No) | 예 (Yes) | 예 (Yes) (2단계) |
| 스트리밍 (Streaming) | 예 (Yes) | 예 (Yes) | 예 (Yes) | 예 (Yes) |
| ... |
git clone https://github.com/he-yufeng/AnyCoder.git
cd AnyCoder
pip install -e ".[dev]"
...
CoreCoder— 저의 또 다른 프로젝트입니다: Claude Code의 512K줄 소스 코드를 약 1,400줄의 Python 코드로 증류(distilled)하였으며, 7개의 아키텍처 심층 분석(architecture deep-dive) 아티클을 포함하고 있습니다. AnyCoder는 동일한 아이디어를 기반으로 구축되었으나, 교육용 코드베이스(teaching codebase)보다는 실용적인 도구(litellm, 세션 지속성 (session persistence), .env 지원)가 되는 것에 집중합니다.
CodeJoust— 버그 수정을 위해 Claude Code, aider, Codex, Gemini 중 무엇을 사용할지 결정하지 못하겠나요? CodeJoust는 병렬 git 워크트리(worktrees)에서 네 가지 모델을 모두 경주시키고, 테스트 / 비용 / 차이점(diff) / 시간을 기준으로 자동 점수를 매겨 승자의 패치(patch)를 전달합니다. pip install codejoust 명령 하나면 충분합니다.
LiteBench— 단 한 번의 명령으로 실행하는 LLM / 에이전트 벤치마크 (HumanEval, GSM8K, MMLU, MATH-500, YAML로 정의된 사용자 정의 작업). AnyCoder 설정에서 어떤 모델을 기본값으로 사용할지 선택할 때 사용하세요.
RepoWiki— pip install repowiki 명령을 통해 로컬 또는 GitHub 저장소를 의존성 그래프(dependency graph) + 아키텍처 다이어그램(architecture diagram) + 모듈 페이지가 포함된 위키(wiki)로 즉시 변환합니다.
MIT 라이선스입니다. 사용하고, 포크(fork)하고, 더 나은 것을 만드세요.
제작자: Yufeng He · Moonshot AI (Kimi) 소속 에이전틱 AI 연구원 (Agentic AI Researcher)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기