TerminaI: 사용자의 시스템을 관리/제어하는 AI 기반 시스템 오퍼레이터 (feat. 오픈소스 버전 Claude Cowork)

TerminaI 소개

TerminaI(터미나이) 는 최근 Anthropic이 출시한 'Claude Cowork' 서비스에 대응하여 개발된 오픈소스, 로컬 우선(Local-First) 시스템 오퍼레이터입니다. 이 프로젝트는 Google의 Gemini 3 모델을 기반으로 구축되었으며, 사용자의 터미널 환경에서 직접적으로, 그러나 안전하게 명령을 수행하는 자율 에이전트입니다.

최근 Anthropic은 AI가 사용자의 컴퓨터를 제어하며 업무를 돕는 'Claude Cowork'를 출시하였지만, 현재 연구용 미리보기(Research Preview)는 월 $100 이상의 Claude Max 요금제 사용자들만 사용할 수 있습니다. 또한, 모든 데이터는 Anthropic에 전달되어 처리됩니다.

이에 대한 대안으로 등장한 TerminaI는 "Sovereign(주권이 있는)" AI를 표방합니다. 즉, 외부 클라우드 환경이 아닌 사용자의 로컬 머신(Metal)에서 직접 구동되며, 모든 실행 권한과 데이터 흐름을 사용자가 투명하게 제어할 수 있는 무료 오픈소스 도구입니다.

TerminaI의 개발자인 Prof-Harita는 Claude Cowork의 높은 비용과 불투명한 안전 장치(Safety Rails)를 비판하며, Gemini 3의 긴 컨텍스트 윈도우(Context Window)와 강력한 추론 능력, 그리고 Gemini CLI의 네이티브 PTY(가상 터미널) 지원을 활용하여 이 도구를 제작했다고 밝혔습니다. TerminaI는 단순한 코딩 보조를 넘어, 실제 시스템 관리자처럼 터미널 세션을 장악하고 복잡한 시스템 명령을 수행할 수 있습니다.

TerminaI와 Claude Cowork와 비교

TerminaI는 Claude Cowork와 동일한 "에이전트형 워크플로우"를 지향하지만, 철학적·기술적 접근 방식에서 큰 차이를 보입니다.

특징 TerminaI (Open Source) Claude Cowork (Anthropic)
기반 모델 Google Gemini 3 Claude 3.5 / 3.7 Sonnet (추정)
비용 무료 (Free) 월 $100 (약 14만 원)
실행 환경 Local-First (사용자 로컬 머신) Cloud-Tethered (클라우드 종속)
안전 장치 System 2 Policy Engine (승인 기반) Opaque Rails (불투명한 내부 정책)
투명성 오픈소스 (코드 확인 가능) 블랙박스 (내부 로직 확인 불가)
OS 지원 크로스 플랫폼 (Node/Python 지원 환경) 초기 macOS 중심 (Windows/Linux 제한적)

Claude Cowork가 자사의 모델을 사용하는 반면, TerminaI는 긴 문맥 처리에 강점이 있는 Gemini 3를 채택하여 대규모 로그 분석이나 복잡한 코드 베이스 이해에 유리합니다. 또한, 고가의 구독료 없이 API 비용만으로(또는 무료 티어 활용 시 무료로) 유사한 기능을 사용할 수 있습니다.

TerminaI의 주요 기능

terminai 사용 예시 화면

TerminaI는 단순한 CLI 래퍼(Wrapper)가 아닙니다. 이 도구는 System 2 사고 방식을 적용한 독창적인 안전 엔진과 자동화 계층을 갖추고 있습니다.

System 2 정책 엔진 (System 2 Policy Engine)

TerminaI에서 가장 주목할 만한 기능은 AI의 행동을 제어하는 안전 메커니즘입니다. (System 2는 심리학에서 '느리고 신중한 사고'를 의미합니다.)

  • 신중한 실행: AI가 rm -rf(삭제)나 네트워크 전송 같은 위험한 명령어를 실행하려 할 때, 즉시 실행하지 않고 **사용자에게 명시적인 승인(Permission)**을 요청합니다.
  • 투명한 의사결정: Claude Cowork가 내부적인 기준에 따라 작동 여부를 결정하는 것과 달리, TerminaI는 왜 이 명령어가 필요한지 설명하고 최종 권한을 사용자에게 넘깁니다.

Gemini 3 및 Native PTY 활용

Gemini 3의 압도적인 토큰 처리 능력(Long Context Window)을 활용하여, 프로젝트 전체의 파일 구조나 긴 에러 로그를 한 번에 입력받아 분석할 수 있습니다.

또한, 실제 터미널(TTY)과 동일한 환경(Native PTY)을 에이전트에게 제공하여, vinano 같은 대화형 프로그램이나 복잡한 셸 상호작용을 더 자연스럽게 처리합니다.

자율적 에러 수정 (Self-Healing)

명령어 실행 후 오류가 발생하면, TerminaI는 스스로 에러 메시지를 읽고 원인을 분석하여 수정된 명령어를 다시 제안하거나 실행합니다. 이는 개발자가 반복적으로 겪는 디버깅 과정을 획기적으로 단축시켜 줍니다.

로컬 우선의 데이터 주권 (Data Sovereignty)

TerminaI의 모든 작업은 사용자의 로컬 환경에서 이루어집니다. 민감한 코드가 불필요하게 클라우드 서버에 영구 저장되거나 학습 데이터로 사용될 우려 없이, 사용자가 통제하는 환경 내에서만 에이전트가 활동합니다.

TerminaI의 보안 모델 (Safety Model)

TerminaI는 AI가 시스템에 미치는 영향을 통제하기 위해 결정론적 승인 사다리(Deterministic Approval Ladder) 라는 독특한 보안 체계를 갖추고 있습니다. TerminaI는 의도(Intent)는 정책 엔진을 거쳐, 위험도에 따라 다른 실행 절차를 따릅니다.

실행 흐름 (High-level Flow):

사용자 의도(Intent) -> 정책 엔진(Policy Engine) -> 승인 단계(Approval) -> 도구 실행(Tool Execution) -> 감사(Audit)

승인 등급 (Approval Levels)

  • Level A (안전/가역적 작업):
    • ls, echo, cat 등 시스템 상태를 변경하지 않거나 쉽게 되돌릴 수 있는 작업입니다.
    • 승인 절차: 사용자 승인 없이 즉시 실행됩니다.
  • Level B (변이 작업 - Mutating):
    • mkdir, touch, 파일 편집 등 시스템 상태를 변경하는 작업입니다.
    • 승인 절차: 실행 전 사용자에게 명시적인 **승인(Explicit Approval)**을 요청합니다.
  • Level C (파괴적/고위험 작업):
    • rm (파일 삭제), 시스템 설정 변경, sudo 권한 사용 등 위험도가 높은 작업입니다.
    • 승인 절차: 사용자의 명시적 승인뿐만 아니라, PIN 번호 입력과 같은 추가 인증 절차를 거쳐야만 실행됩니다.

감사 로그 (Audit Logs)

모든 작업 내역은 투명하게 기록됩니다. 감사 로그(Audit Logs)~/.terminai/logs/audit/ 경로에 JSONL 형식으로 저장되어, TerminaI가 수행한 중요 작업을 사후에 검토할 수 있습니다. 그 외 일반적인 세션 로그(런타임 로그)는 ~/.terminai/logs/에 저장됩니다.

TerminaI 설치 및 사용

TerminaI는 단순한 대화형 AI를 넘어, 시스템의 파일과 프로세스를 직접 제어하는 강력한 '시스템 오퍼레이터'입니다. 이러한 강력한 권한(Power)을 안전하게 사용하기 위해, TerminaI는 유연한 설치 옵션과 함께 매우 정교한 **보안 모델(Safety Model)**을 탑재하고 있습니다.

설치 방법 (Installation)

사용자는 자신의 환경과 선호도에 따라 세 가지 방식 중 하나를 선택하여 설치할 수 있습니다.

CLI 설치 (npm 활용)

가장 일반적이고 권장되는 설치 방법입니다. Node.js 20 버전 이상이 설치되어 있어야 하며, 다음과 같이 설치 및 설치 확인이 가능합니다:

# 설치 명령어
npm i -g @terminai/cli

# 설치 확인
terminai --version

# 실행
terminai

소스 코드 직접 빌드

npm 레지스트리에 배포되기 전의 최신 기능(Bleeding-edge)을 사용하고 싶거나, 직접 기여를 원하는 경우 소스 코드를 빌드하여 설치할 수 있습니다.

# 저장소 복제 (clone)
git clone https://github.com/terminai/terminai.git
cd terminai

# 의존성 설치 및 빌드
npm install
npm run build

데스크탑 인스톨러 (Desktop)

CLI 환경이 익숙하지 않거나 독립된 애플리케이션 형태를 선호하는 경우, GitHub 저장소의 Releases 페이지에서 OS별 인스톨러를 다운로드하여 설치/사용할 수 있습니다.

LLM 공급자 설정 (Configuration)

TerminaI는 다중 LLM을 지원하지만, 안정성과 접근성 측면에서 Google Gemini를 최우선으로 지원합니다.

Google Gemini (권장 및 기본값)

Gemini는 현재 가장 광범위하게 테스트된 모델이며, 무료 티어(Free-tier) 크레딧을 제공하여 초기 비용 장벽 없이 바로 사용할 수 있다는 점에서 기본값으로 설정되어 있습니다.
GEMINI를 사용하기 위해서는 다음과 같이 API 키를 환경 변수로 내보내기만 하면 됩니다:

# TERMINAI_AI_KEY 설정
export TERMINAI_API_KEY="사용자의_GEMINI_API_KEY"

# terminai 실행
terminai

OpenAI 호환 공급자 (OpenAI, OpenRouter 등)

OpenAI의 GPT-4 또는 OpenRouter에서 제공하는 다양한 모델들을 사용하고자 하는 경우 별도 설정이 필요합니다.

설정 마법사 사용하는 방법: TerminaI 실행 후 /auth 명령어를 입력하여 대화형으로 설정할 수 있습니다.

  1. terminai 실행 후 /auth 입력
  2. "OpenAI Compatible" 선택
  3. Base URL, Model 이름, 환경 변수 이름 입력

수동 설정 (JSON 파일 수정) 방법: 위의 마법사 사용이 실패하거나 수동 설정을 선호하는 경우, 홈 디렉터리의 설정 파일(~/.terminai/settings.json)을 직접 수정합니다. 아래는 OpenRouter를 사용하는 예시입니다.

{
  "llm": {
    "provider": "openai_compatible",
    "openaiCompatible": {
      "baseUrl": "https://openrouter.ai/api/v1",
      "model": "openai/gpt-oss-120b:free",
      "auth": {
        "type": "bearer",
        "envVarName": "OPENAI_API_KEY"
      }
    }
  },
  "security": {
    "auth": {
      "selectedType": "openai-compatible"
    }
  }
}

단, 위와 같은 설정 전에 export OPENAI_API_KEY="..." 와 같이 해당 환경 변수가 설정되어 있어야 합니다.

라이선스

이 프로젝트는 Apache License 2.0으로 배포되고 있습니다. 누구나 자유롭게 사용, 수정, 배포할 수 있으며 상업적 이용도 가능합니다.

:scroll: Reddit의 소개 글: Claude Cowork is $100/mo. I built the Open Source version on Gemini 3

https://www.reddit.com/r/Bard/comments/1qctcnm/claude_cowork_is_100mo_i_built_the_open_source/

:github: TerminaI 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

4개의 좋아요