NPC-Worldwide/npcsh
the composable multi-agent shell
npcsh – 구성 가능한 멀티 에이전트 셸
소개 – npcsh는 일반적인 Bash 명령어 또는 자연어 요청을 입력할 수 있는 명령줄 인터페이스입니다. 내부적으로는 요청을 언어 모델 기반의 '에이전트'로 라우팅하여 셸 명령 실행, 도구 호출, 또는 사용자가 정의한 Jinja 기반의 커스텀 jinxes(템플릿)를 실행합니다. 간단히 말해, LLM을 대화형 셸 어시스턴트로 바꿔주는 도구입니다.
핵심 개념
- Agents –
.npcYAML, Markdown 또는 파일별agents/형식으로 정의됩니다. 각 에이전트는 이름, 기본 지시문, 선택적 모델/제공자 재정의 설정을 가집니다. - Jinxes – 프롬프트, 도구 호출, 스크립트를 인코딩하는 재사용 가능한 Jinja 템플릿입니다. 에이전트는 이를 '스킬'로 호출합니다.
- Context layer –
npcsh.ctx파일은 사용자가 정의한 키를 보관하며, 업데이트 후에도 유지되어 커스텀 명령 후크를 가능하게 합니다. - Provider‑agnostic – LiteLLM이 지원하는 모든 모델(Ollama, LM Studio, OpenAI, Anthropic, Gemini, DeepSeek, Minimax 등)에서 작동합니다.
- Benchmark – 100개의 작업을 통해 모델이 셸을 얼마나 잘 제어할 수 있는지 평가하는 내장 스위트가 있으며, 많은 인기 모델의 점수가 README에 나열되어 있습니다.
설치
- 퀵 스크립트(권장) –
이 스크립트는 Rust 바이너리(curl -fsSL https://enpisi.com/install-npcsh.sh | shnpcsh,npc)를 설치하고 Python 백엔드(npcpy)를 설정합니다. - Cargo –
cargo install npcsh(소스에서 직접 빌드하려는 경우). - Python 백엔드 –
pip install npcpy(추론 루프에 필요하며, 향후 Rust 러너로 대체될 예정입니다).
최초 실행 설정 – 적절한 기본값이 포함된 ~/.npcshrc가 생성됩니다. 예:
export NPCSH_CHAT_MODEL=qwen3.5:2b
export NPCSH_CHAT_PROVIDER=ollama
export NPCSH_DEFAULT_MODE=agent
OpenAI, Anthropic, Gemini 등의 API 키는 같은 파일이나 셸 rc 파일에 추가할 수 있습니다.
일반적인 워크플로우
npcsh> what process is listening on port 5337?
# LLM‑agent runs `lsof -i :5337` and returns the answer.
npcsh> @corca refactor the auth module and add tests
# The `@corca` agent (defined in your team) receives the request, generates code changes, runs them, and can open the Git TUI.
npcsh> /git
# Opens an integrated Git text‑UI for reviewing commits.
/로 시작하는 명령어는 내장 셸 단축키입니다 (/update, /sync, /git 등).
npcsh 확장하기
- 스킬 추가 –
npc_team/jinxes/skills/아래에 Jinja 파일을 넣고skill매크로로 컴파일합니다. - 에이전트 생성 – 새로운 역할(예: 데이터 분석가)을 설명하는
.npc파일이나 Markdown 항목을 작성하고 해당 스킬을 참조합니다. - 커스텀 컨텍스트 키 – 예약되지 않은 키를 사용하여
~/.npcsh/npc_team/npcsh.ctx를 편집하면 해당 값을 모든 에이전트에서 사용할 수 있습니다.
문서 및 커뮤니티
- 전체 문서: https://npc-shell.readthedocs.io
- Discord 채팅, 후원 링크, 굿즈, 컨설팅 문의처는 README에 나열되어 있습니다.
라이선스 – MIT.
결론 – npcsh는 LLM 기반 에이전트와 터미널에서 직접 상호작용할 수 있게 해주는 실제 오픈소스 Rust/Python 프로젝트로, 명령줄 자동화, 코딩 지원, 다단계 워크플로우를 위한 프로그래밍 가능하고 확장 가능한 환경을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트