ConardLi/easy-agent
Production-ready open source terminal coding agent with readable, layered code: permission rules, OS sandboxing, MCP, skills, sub-agents, and Anthropic, OpenAI-compatible, Gemini, or local models.
Easy Agent – 안전한 터미널 기반 코딩 어시스턴트
기능
- 코드 저장소 옆에서 명령줄 REPL(
eagent)로 실행됩니다. - 자연어로 작업을 설명하면 에이전트가 계획을 세우고, 파일을 읽고 편집하며, 빌드/테스트를 실행하고 결과를 보고합니다.
- 잠재적으로 위험한 모든 작업(파일 쓰기, 셸 명령, 네트워크 호출)은 설정한 권한 시스템을 통해 필터링되며, 선택적으로 OS 수준의 샌드박싱이 적용됩니다.
주요 기능
| 영역 | 하이라이트 |
|---|---|
| 핵심 도구 | 파일 읽기/쓰기, 다중 파일 편집, glob/grep, Bash/PowerShell 실행, 웹 가져오기/검색, MCP 기반 확장. |
| 안전성 | 허용/확인/거부 규칙 엔진, 작업공간 신뢰 모델, 경로 경계 검사, 읽기 전용 Plan 모드, 분류기 지원 Auto 모드, 샌드박스(macOS의 Seatbelt, Linux의 bubblewrap). |
| 지속성 | 세션 기록, 파일 체크포인트(/rewind), 프로젝트 전체 메모리(AGENT.md/AGENTS.md), 영구 작업 그래프, 재개 가능한 세션. |
| 확장성 | 스킬, 사용자 정의 에이전트, 슬래시 명령, 플러그인, MCP 서버, 정적 마켓플레이스, 임베딩용 SDK. |
| 인터페이스 | 대화형 터미널 UI, 헤드리스 JSON/NDJSON 출력(-p), stdio를 통한 JSON-RPC, IDE용 Agent Client Protocol, SDK(eagent/sdk). |
| 지원 모델 | Anthropic, OpenAI 호환, Gemini, 로컬 Ollama 스타일 모델; JSON 프로필 또는 환경 변수로 설정 가능. |
| 플랫폼 | macOS, Linux/WSL2(샌드박스), Windows(PowerShell, 샌드박스 없음). |
사용 방법
- npm으로 전역 설치(
npm i -g eagent)하거나npx로 실행합니다. - 모델 토큰을 내보냅니다(예:
ANTHROPIC_AUTH_TOKEN). - 프로젝트에
cd하고eagent를 시작합니다. - 첫 실행 시 폴더를 신뢰할지 결정합니다. 그런 다음
요청이 어떻게 인증되는지 설명해줘와 같은 자연어 요청을 입력합니다. - 슬래시 명령(
/help,/rewind,/model,/permissions등)을 사용하여 세션을 제어하거나 상태를 확인하거나 변경 사항을 되돌립니다.
보안 모델
- 권한 규칙: 허용, 확인, 거부 – 거부가 항상 우선합니다. 승인되지 않은 작업은 프롬프트를 트리거합니다.
- 권한 모드:
default(확인),plan(읽기 전용),auto(분류기가 결정하고 불확실할 때 프롬프트 표시). - 작업공간 신뢰: 신뢰 결정은
~/.easy-agent/state.json에 저장됩니다. 저장소는 자신을 신뢰됨으로 표시할 수 없습니다. - 경로 경계: 작업공간 외부의 심볼릭 링크는 거부됩니다.
- 샌드박스: 선택적 OS 샌드박스가 Bash 명령을 격리합니다. 시작에 실패하면 명령이 차단됩니다.
- 로컬 데이터: 모든 세션 데이터는 제한된 권한(0700/0600)으로
~/.easy-agent에 저장됩니다.
구성
- 설정은 계층화된 JSON 파일(사용자 → 프로젝트 → 로컬 → CLI → 관리)입니다.
- 모델 프로필은
settings.json에서 정의되며eagent --model <이름>또는/model로 선택합니다. - 권한, 기능 플래그, 샌드박스 옵션은 동일한 계층 구조로 전환됩니다.
일반적인 워크플로우
- 코드 탐색: 기능이 구현된 위치를 묻습니다. 에이전트가 grep하고 파일을 열고 설명합니다.
- 일괄 리팩토링: 다중 파일 변경을 프롬프트하고, diff를 검토하고, 필요시
/rewind합니다. - CI 통합: 프롬프트를
eagent -p에 파이프하고 스크립트에서 JSON 출력을 사용합니다. - 사용자 정의 도구: 자신의 스킬이나 플러그인을 등록하거나 ACP 프로토콜을 통해 IDE를 연결합니다.
개발 및 기여
- TypeScript로 구축되었으며 단일 ESM 패키지로 번들됩니다.
- 개발 워크플로우:
npm run dev; CI는 검증 스크립트와 광범위한 테스트를 실행합니다. - 현재 외부 PR은 받지 않지만, 재현 가능한 버그가 있는 이슈는 환영합니다.
라이선스: MIT(타사 라이선스는 별도로 명시).
Easy Agent는 터미널에서 작업하는 개발자를 위해 프로그래밍 가능하고 보안에 중점을 둔 AI 코딩 어시스턴트를 제공하는 진정한 오픈소스 프로젝트입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트