NPC-Worldwide/npcsh

the composable multi-agent shell

npcsh – 구성 가능한 멀티 에이전트 셸

소개 – npcsh는 일반적인 Bash 명령어 또는 자연어 요청을 입력할 수 있는 명령줄 인터페이스입니다. 내부적으로는 요청을 언어 모델 기반의 '에이전트'로 라우팅하여 셸 명령 실행, 도구 호출, 또는 사용자가 정의한 Jinja 기반의 커스텀 jinxes(템플릿)를 실행합니다. 간단히 말해, LLM을 대화형 셸 어시스턴트로 바꿔주는 도구입니다.

핵심 개념

  • Agents – .npc YAML, Markdown 또는 파일별 agents/ 형식으로 정의됩니다. 각 에이전트는 이름, 기본 지시문, 선택적 모델/제공자 재정의 설정을 가집니다.
  • Jinxes – 프롬프트, 도구 호출, 스크립트를 인코딩하는 재사용 가능한 Jinja 템플릿입니다. 에이전트는 이를 '스킬'로 호출합니다.
  • Context layer – npcsh.ctx 파일은 사용자가 정의한 키를 보관하며, 업데이트 후에도 유지되어 커스텀 명령 후크를 가능하게 합니다.
  • Provider‑agnostic – LiteLLM이 지원하는 모든 모델(Ollama, LM Studio, OpenAI, Anthropic, Gemini, DeepSeek, Minimax 등)에서 작동합니다.
  • Benchmark – 100개의 작업을 통해 모델이 셸을 얼마나 잘 제어할 수 있는지 평가하는 내장 스위트가 있으며, 많은 인기 모델의 점수가 README에 나열되어 있습니다.

설치

  1. 퀵 스크립트(권장) –
    curl -fsSL https://enpisi.com/install-npcsh.sh | sh
    
    이 스크립트는 Rust 바이너리(npcsh, npc)를 설치하고 Python 백엔드(npcpy)를 설정합니다.
  2. Cargo – cargo install npcsh (소스에서 직접 빌드하려는 경우).
  3. 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를 편집하면 해당 값을 모든 에이전트에서 사용할 수 있습니다.

문서 및 커뮤니티

라이선스 – MIT.


결론 – npcsh는 LLM 기반 에이전트와 터미널에서 직접 상호작용할 수 있게 해주는 실제 오픈소스 Rust/Python 프로젝트로, 명령줄 자동화, 코딩 지원, 다단계 워크플로우를 위한 프로그래밍 가능하고 확장 가능한 환경을 제공합니다.

관련

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