// 로컬 AI 에이전트 런타임

내 컴퓨터에서 실행되고,
내가 직접 다룰 수 있는
로컬 AI 에이전트

TARS는 Go 기반 단일 바이너리로 실행되는 로컬 AI 에이전트 런타임입니다. 브라우저 콘솔에서 에이전트의 작업 흐름, 메모리, 스케줄 작업, Git 변경사항, 실행 기록을 직접 확인하고 제어할 수 있습니다.

단일 바이너리 로컬 우선 Anthropic · OpenAI · Gemini · Claude Code CLI MIT 라이선스
// TARS란

내 컴퓨터에서 함께 일하는
AI 에이전트

TARS라는 이름은 영화 인터스텔라의 TARS에서 따왔습니다. 실용적이고 직설적이며, 복잡한 상황에서도 제 역할을 해내는 존재죠. TARS는 그런 방향을 지향합니다.

클라우드 어딘가에서 돌아가는 알 수 없는 에이전트가 아니라, 내 컴퓨터에서 실행되고 내가 직접 보고 다룰 수 있는 로컬 AI 에이전트입니다. 대부분의 AI 에이전트 도구는 CLI 중심이거나 얇은 웹 UI를 덧붙인 형태인 반면, TARS는 브라우저 콘솔을 중심으로 설계되어 있습니다. 채팅, 서브에이전트, 스케줄 작업, 메모리 검토, Git 변경사항, 실행 흐름, 승인 대기 작업이 각각의 화면으로 분리되어 있습니다.

에이전트가 내 파일과 도구를 다루는 만큼, 그 과정을 직접 확인하고 필요할 때 개입할 수 있어야 한다는 전제에서 출발했습니다. 확장 구조도 가볍게 유지합니다 — 스킬은 필요할 때만 로드되고, 플러그인과 MCP 서버는 명시적으로 허용된 경우에만 사용됩니다. 시스템 프롬프트는 작게 유지되고, 에이전트는 현재 작업에 집중할 수 있습니다.

// 콘솔

에이전트가 일하는 과정을
직접 확인하는 공간

많은 로컬 에이전트 도구는 CLI 하나로 끝납니다. TARS는 브라우저 콘솔을 중심 인터페이스로 사용합니다. 127.0.0.1:43180/console을 열면, 단순한 상태 페이지가 아니라 실제로 에이전트를 확인하고 제어할 수 있는 화면을 만나게 됩니다.

/home /console

Mission Control

콘솔을 열면 처음 만나는 화면. Pulse, Reflection, 진행 중인 플랜, 런타임 실행, Cron 작업, 디스크 상태, 세션, 권장 설정 작업이 한 페이지에 모여 에이전트 상태와 진행 중인 일을 한눈에 보여줍니다.

/work /console/chat

Chat

실제 작업이 일어나는 곳. Sessions, Files, Config, Context, Prompt, Prior Context, Tasks, Git, Skills, Cron, Health 중 필요한 패널을 대화 옆에 도크합니다. 특정 메시지 지점에서 세션을 분기할 수 있고, 첫 턴에서는 작업에 맞는 모델 티어를 추천합니다.

/operate /console/approvals

Approvals

위험한 정리 작업이 적용되기 전에 대기하는 곳. 파일 경로와 크기, 이유를 먼저 보여주고 승인/거부를 사용자가 정합니다. 적용된 계획은 결과 로그로 남고, 같은 페이지에서 원격 실행 상태도 확인할 수 있습니다.

/operate /console/logs

Logs

브라우저를 벗어나지 않고 런타임 로그를 확인. 파일, 레벨, 컴포넌트, 줄 수로 필터링하고, 각 줄을 펼치면 원본 JSON 레코드를 그대로 볼 수 있습니다.

/operate /console/pulse

Pulse

감시 루프 화면. 60초마다 Cron 실패, 멈춘 실행, 디스크 압력, Telegram 전송, Reflection 상태를 점검하고, LLM 분류기가 각 틱을 ignore / notify / autofix로 나눕니다. autofix는 허용 목록에 있는 것만 실행됩니다.

/setup /console/config

Settings

의도적으로 Quick Start 점검만 남긴 화면. 프로바이더 자격증명, 티어 바인딩, 워크스페이스 경로, 그리고 Pulse · Reflection · 원격 접속을 켜고 끄는 스위치입니다. 나머지 설정은 diff와 버전 관리가 되는 YAML에 둡니다.

내비게이션이 짧은 것은 의도된 결과입니다. 개발이 멈추기 직전의 변경에서 사이드바는 한 사람이 매일 여는 화면만 남기고 정리했고, Lineage · Plans · Memory · System Prompt · Extensions · Agent Runtime · Channels · Cron · Analytics · Reflection은 라우트가 그대로 살아 있어 URL로는 여전히 열립니다 — 목록에 노출하지 않을 뿐입니다.
// 앱처럼 설치

콘솔을 데스크톱 앱으로 띄우기

브라우저 콘솔은 설치 가능한 PWA로 제공됩니다. Dock·작업표시줄·런처에 추가하면 별도 창으로 열리고, 우클릭 메뉴로 주요 화면에 바로 진입하며, 상단 칩으로 서버 상태를 한눈에 확인할 수 있습니다.

  • Chrome / Edge / Brave / Arc: 주소창 설치 버튼
  • Safari 14+: 파일 → Dock에 추가
  • Dock 아이콘 우클릭: Chat / Sessions / Ops / Pulse / Reflection 바로가기
  • 상단 status pill: 서버 · pulse · reflection · 활성 세션을 한눈에
설치 가이드 →
// 스크린샷

실제로 배포된
콘솔 화면

아카이브된 시점의 코드를 tars serve로 직접 띄워 캡처했습니다 — 사이드바가 안내하는 다섯 화면을, 사이드바에 놓인 순서 그대로.

TARS 콘솔 Chat 화면: 왼쪽 세션 목록, 가운데 두 번의 대화, 위쪽 패널 탭TARS 콘솔 Approvals 화면: 검토 대기열, 승인이 필요한 조건, 원격 실행 패널TARS 콘솔 Logs 화면: INFO 레벨로 필터링된 런타임 로그TARS 콘솔 Pulse 화면: 감시 대상, ignore/notify/autofix 동작, 현재 감시 상태TARS 콘솔 Settings 화면: Quick Start 준비 상태 카드, 10개 중 9개 완료
대화가 진행 중인 세션. 위쪽 탭으로 Sessions, Files, Git, Tasks, Health 같은 패널을 대화 옆에 붙일 수 있고, 헤더에는 세션 상태와 현재 작업 디렉터리가 함께 표시됩니다.

목업이 아니라 로컬 설치본의 실제 화면입니다. 캡처용으로 새로 만든 워크스페이스라 숫자가 작을 뿐, 실제로 쓰는 워크스페이스에서는 이 화면들이 훨씬 빽빽하게 채워집니다.

// 런타임 기능

핵심은 작게,
필요한 기능은 선택적으로

TARS는 모든 기능을 한꺼번에 시스템 프롬프트에 밀어 넣지 않습니다. 기본 런타임은 작게 유지하고, 나머지는 스킬과 플러그인으로 분리합니다.

agent_runtime

서브에이전트 오케스트레이션

리서치/플래닝용 읽기 전용 서브에이전트 실행. 작업별 모델 티어 라우팅, 허용 정책, 깊이 제어. 병렬 실행과 비교 모드.

memory

영속 메모리

Gemini 임베딩 시맨틱 검색을 갖춘 Markdown 메모리. 일일 로그, 검토된 경험, 야간 Reflection을 디스크에 저장. 저장 전 검토를 거쳐 어떤 정보가 장기 기억으로 남을지 사용자가 결정합니다.

pulse

Pulse 감시 루프

주기적으로 런타임 상태를 점검. Cron 실패, 멈춘 실행, 디스크 압력, Telegram 오류를 감지. 필요할 때만 좁은 범위로 LLM을 호출합니다.

reflection

야간 Reflection

02:00–05:00 사이에 세션에서 경험과 기억 후보를 추출. 빈 세션 정리, 메모리 후보 갱신. Go 코드 중심으로 동작하며 LLM 도구 표면을 직접 사용하지 않습니다.

cron

스케줄 작업

30초 단위 틱 기반 스케줄러. Cron 표현식과 @at 일회성 트리거. 작업별 실행 기록과 상태 관리 제한값을 제공.

llm_router

3-Tier LLM 라우터

Heavy / Standard / Light 세 티어. 역할은 티어에 연결, 프로바이더와 모델은 설정에서 관리. 작업 성격에 따라 가벼운 모델과 강한 모델을 골라 쓸 수 있습니다.

extensions

Skills, Plugins, MCP

스킬은 Markdown 설명과 실행 가능한 CLI로 구성. 호출될 때만 로드되어 시스템 프롬프트가 작게 유지됩니다. Plugins은 명시적으로 허용된 경우에만 사용, MCP는 클라이언트로 지원. 스킬 설치는 tars-hub와 외부 MIT 호환 허브(openclaw, hermes, Anthropic skills)를 모두 아울러 페더레이션됩니다. 외부 허브 설치는 반드시 미리보기를 거치고 원본 라이선스 본문이 담긴 ATTRIBUTION.md를 자동 생성하며, 재배포 불가 콘텐츠는 차단합니다.

channels

멀티 채널 I/O

브라우저 콘솔 외에도 Telegram 양방향 메시징, 인바운드 웹훅, macOS Assistant 팝업, 스크립트용 로컬 API.

// 다른 도구와의 차이

TARS는 어떤 지점을 다르게 보는가

이 영역에는 이미 좋은 다른 두 프로젝트 — OpenClawHermes Agent가 있습니다. 각자 초점이 있고, TARS는 다음 지점을 특히 중요하게 봅니다.

항목OpenClawHermes AgentTARS
언어TypeScriptPythonGo (단일 바이너리)
주 인터페이스CLICLI + API브라우저 콘솔 (CLI / Telegram / 웹훅 포함)
서브에이전트ACP + 서브에이전트 런타임, Docker 샌드박스ThreadPoolExecutor (max 3), 단발 프롬프트작업별 모델 티어, 허용 정책, 깊이 제어
모델 라우팅에이전트별 모델 오버라이드자식별 오버라이드, MoA (4개 프론티어 모델)3-티어 번들 (heavy/standard/light), 역할→티어 매핑
메모리세션 트랜스크립트Honcho/Holographic 플러그인 훅Markdown + 시맨틱 + 저장 전 검토 + 야간 Reflection
백그라운드Pulse 감시 루프 (1분) + 야간 Reflection 배치
스케줄링세션 바운드 cron + 감사 로그
확장성빌트인 도구툴셋스킬 + 동반 CLI + 허용 기반 plugins/MCP

2026-08-02 기준으로 TARS v0.35.0, OpenClaw v2026.7.1, Hermes Agent v0.19.1을 놓고 확인한 내용입니다. TARS는 여기서 멈췄지만 나머지 두 프로젝트는 계속 움직이고 있으므로, 그쪽 열은 그 시점의 스냅숏으로 봐주세요. 비교는 TARS 관점에서 의도적으로 단순화한 것이니 각 프로젝트의 소스를 직접 보고 본인의 관점을 만드시길 권합니다.

// 아키텍처

하나의 바이너리,
분리된 도구 표면

TARS는 하나의 바이너리 안에서 실행되지만, 모든 도구를 같은 방식으로 노출하지 않습니다. 채팅에서 사용하는 도구와 런타임 내부 도구를 분리합니다. ops_, pulse_, reflection_ 계열은 일반 채팅에서 직접 호출할 수 없으며, 런타임 내부 동작용으로 예약되어 있습니다. Pulse는 제한된 Go 인터페이스만 사용하며 LLM은 필요할 때만 호출, Reflection은 결정론적으로 동작합니다.

┌─ cmd/tars (cobra) ──────────────────────────────────────┐
│ serve · service · init · doctor · status · cron · ...   │
└──────────────────────────┬──────────────────────────────┘
                           │
            ┌──────────────▼──────────────┐
            │  tarsserver (127.0.0.1:43180) │
            └──┬─────────┬──────────┬──────┘
               │         │          │
       ┌───────▼──┐ ┌────▼─────┐ ┌──▼─────────┐
       │  chat    │ │  pulse   │ │ reflection │
       │  agent   │ │ watchdog │ │  nightly   │
       └────┬─────┘ └────┬─────┘ └────┬───────┘
            │            │            │
       ┌────▼────────────▼────────────▼─┐
       │   memory · cron · ops · llm    │
       └────────────────────────────────┘
// 빠른 시작

세 단계로 시작하기

처음 실행하면 설정 마법사가 LLM 프로바이더와 모델 티어 구성을 안내합니다. LLM 설정이 완료되기 전까지 콘솔은 설정 전용 모드로 실행됩니다.

01

설치

macOS / Linux — 콘솔이 포함된 사전 빌드 바이너리

brew tap devlikebear/tap
brew install devlikebear/tap/tars
02

워크스페이스 초기화

tars init
03

서버 시작

Ctrl+C 누를 때까지 터미널에서 실행됩니다.

tars serve
# console at http://127.0.0.1:43180/console