tiguclaw
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- exec() — Shell command execution in bin/daemon.mjs
- spawnSync — Synchronous process spawning in bin/daemon.mjs
- os.homedir — User home directory access in bin/daemon.mjs
- process.env — Environment variable access in bin/daemon.mjs
- process.env — Environment variable access in bin/deploy-guard.mjs
- network request — Outbound network request in bin/deploy-guard.mjs
- spawnSync — Synchronous process spawning in bin/dev.mjs
- process.env — Environment variable access in bin/dev.mjs
- spawnSync — Synchronous process spawning in bin/tiguclaw.mjs
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Always-on, self-hosted AI agent runtime — multi-LLM, parallel sub-agents, Telegram/Web/CLI, skills, memory, MCP.
tiguclaw
한국어 · English
항상 켜져 있는 내 AI 비서입니다. Claude Code 가 하는 일은 다 하고, 거기에 여러 LLM 을 동시에 씁니다. 텔레그램·웹 대시보드·CLI·HTTP — 어디로 들어가도 같은 비서예요. 내 컴퓨터에서, 내 키와 내 봇으로 돌아갑니다.
바로 깔아보려면 → 빠른 시작 (받아서 onboard 한 번, 끝입니다). 아래는 뭘 할 수 있는지입니다.
뭘 하나
- Claude Code 의 도구를 그대로 — 파일 읽기·쓰기·편집, 쉘 실행, 웹 검색, 스킬, 서브에이전트, 훅, 슬래시 명령, 영구 메모리.
- 여러 LLM, 하나의 비서 —
anthropic·openai·codex(ChatGPT)·ollama(로컬)·google(Gemini)이 기본으로 들어 있고, OpenAI 호환 엔드포인트라면 무엇이든(OpenRouter·Groq·vLLM·직접 띄운 것) 설정 세 줄로 붙습니다.provider:model한 줄로 섞어 쓰세요. 바꿔도 능력은 그대로입니다 — 셸·검색·파일·위임까지 어느 모델에서나 같은 도구로 돌기 때문에, 모델을 갈아도 같은 질문에 다른 답이 나오지 않습니다. - 항상 켜짐 — 백그라운드 서비스로 상시 실행되고, 죽으면 스스로 재시작합니다.
- 부탁하면 스스로 업데이트 — "업데이트해줘" 한마디(또는
/update)면 최신 코드를 받아 재시작하고, 다 되면 알려줍니다. 손으로git pull할 필요 없어요. 기억·세션은 그대로 이어지고, 새 코드가 실행 가능하게 빌드되지 않으면 이전 버전으로 롤백해 계속 돌아갑니다. - 텍스트 말고 버튼으로 묻습니다 — 고르라고 할 때 누를 수 있는 보기를 띄웁니다(텔레그램·대시보드는 버튼, CLI는 번호). 어느 채널이든 똑같습니다.
- 타이핑 대신 말로 — 텔레그램에 음성 메시지를 보내거나 대시보드 마이크를 꾹 누르고 말하면, 받아 적고 바로 일을 시작합니다. 전사도 다른 능력처럼 설정으로 고르세요 — 로컬 모델이든 클라우드든.
- 일하는 중에 끼어들 수 있습니다 — 비서가 작업 중일 때 메시지를 보내면, 턴이 끝나길 기다리거나 처음부터 다시 시키지 않고 진행 중인 작업에 그대로 반영합니다.
- 다채널 단일 인격 — 텔레그램·CLI·HTTP·웹 대시보드 어디로 들어와도 같은 비서고, 대화 맥락도 공유합니다. 폰에서 시작한 대화를 책상에서 그대로 이어갑니다.
- 무거운 일도 사소한 일도 위임 — 긴 작업은 백그라운드 매니저에 맡겨 대화를 끊지 않고, 가벼운 일은 더 싼 모델 등급으로 내려보냅니다. 어느 일을 어느 등급에 맡길지는 모델 프로파일로 정하세요.
- 여러 명을 동시에, 그리고 잊지 않고 — 서브에이전트를 여럿 띄워두고 대화를 이어갈 수 있습니다. 맡긴 쪽은 결과를 받기 전엔 끝나지 않으므로, 맡겨놓고 잊히는 일이 없습니다. 도는 중에 지시를 얹거나 멈출 수도 있습니다.
- 일하면서 배웁니다 — 자기 실수가 반복되면 그걸 운영 교훈으로 정리해 다음엔 따르고, 재사용할 만한 워크플로우다 싶으면 — 처음 보는 것이라도 — 알맞은 자리(프로젝트 전용/공통)의 스킬로 만들자고 제안합니다. 전부 제안 → 승인이고, 몰래 자기를 고치지 않습니다.
- 자기 이상을 스스로 알아챕니다 — 최근 기록을 훑어 조용히 잘못된 것(도착 안 한 예약 알림, 죽은 작업 같은)을 찾아 먼저 보고합니다. 되돌릴 수 있는 안전한 조치 — 그 알림 한 번 다시 보내기 같은 — 는 알아서 하고 알려주며, 나머지는 사용자에게 가져옵니다.
- 멈추면 멈췄다고 말합니다 — 도구가 응답 없이 붙잡혀 있으면 화면에 알리고, 텔레그램으로 대화 중이었으면 그쪽으로도 알립니다. 끝내 응답이 없으면 턴을 끊습니다. "돌고 있는 건지 멈춘 건지 모르겠는" 시간을 없앴습니다.
- 대화 이름도 말로 바꿉니다 — "이 대화 이름 '핫딜 리팩터링'으로 바꿔줘" 처럼 부탁하면 됩니다. 여러 대화를 굴릴 때 어느 게 뭔지 헷갈리지 않아요.
- 데이터는 내 컴퓨터에 — 세션·메모리·DB 전부 로컬(
~/.tiguclaw)에. - 대시보드에서 시켜도 텔레그램으로 같이 받습니다 — 입력창의 📤 로 "이 답도 함께 보낼 채널"을 켜두면, 자리를 비운 사이 끝난 긴 작업도 폰으로 옵니다. 그 메시지에 답장하면 그 답을 만든 대화로 들어가요 — 여러 대화가 한 방에 섞여 와도 헷갈리지 않습니다.
- 다음에 할 말을 제안합니다 (기본 꺼짐) — 턴이 끝나면 입력창에 회색 글씨로 떠 있고, Tab(모바일은 입력창 터치)이면 채워집니다. 보내는 건 직접 하셔야 해요. 매 턴 토큰을 조금 쓰기 때문에 설정 화면에서 켜야 켜집니다.
- 밖으로 나간 호출도 기록됩니다 — 내가 연 HTTP 엔드포인트와 LLM 게이트웨이 호출이 한 화면에 남습니다. 주고받은 내용은 저장하지 않고 어떤 모델이 몇 건을, 토큰·소요·성공 여부가 어땠는지만요.
- 새로고침해도 자리를 잃지 않습니다 — 보던 화면, 세션 탭, 백그라운드 패널 상태가 그대로 돌아옵니다.
다른 점
비슷한 도구와 갈리는 지점들입니다.
- 웹 대시보드. 일하는 과정이 한 스텝씩 실시간으로 뜹니다 — 추론과 도구 실행이 일어난 순서대로, 편집은 diff 와 파일 줄 번호까지. 세션 탭으로 여러 대화를 나란히 두고, 옆 패널에서 백그라운드 작업을 따라갑니다. 재시작해도 스크롤백이 남고, 입력창은 셸처럼 ↑/↓ 로 이전 입력을 꺼내거나
#태그로 맥락을 겁니다.
웹 대시보드 — 일하는 과정이 한 스텝씩, 오른쪽 패널에서 매니저·서브에이전트가 도는 걸 그대로 봅니다.
- 폰에서도 씁니다. 데스크톱 화면을 줄인 게 아니라 모바일 레이아웃이 따로 있습니다 — 서랍 내비게이션, 마스터-디테일 패널, 폰 키보드에 맞춘 입력창. 소파에서 오래 걸리는 작업을 확인하거나 일을 시켜두고, 책상에서 같은 대화로 이어서 끝냅니다.
- 프로젝트. 폴더를 주고 "프로젝트로 등록해줘" 해도 되고, 폴더 없이 "이런 프로젝트 해보자" 해도 됩니다 — 앞은 그 폴더를, 뒤는 작업 폴더를 새로 만들어 등록합니다. 설명·상태를 담은
PROJECT.md는 비서가 쓰고요(있으면 그대로 씁니다). 등록하면#이름만 붙여 그 프로젝트 얘기를 하고, 그 폴더 전용 스킬·서브에이전트·MCP 도구가 같이 켜집니다. - 외부 MCP 서버를 즉석에서 연결. MCP 서버를 추가해달라고 하면 그 외부 도구를 배선합니다 — 전역으로든 특정 프로젝트로든, 코어는 안 건드립니다.
- 내가 통제하는 모델 티어. 모델 프로파일(
default·high·mid·low)을 크로스-프로바이더 풀 + 자동 폴백으로 이름 붙입니다. 메인 턴은 한 티어, 서브에이전트·매니저는 다른 티어로 돌아요 — 대화로 편집하거나/models로 목록을 봅니다. - 일하는 걸 지켜봅니다. 서브에이전트와 오래 걸리는 매니저가 추적 가능한 잡으로 돌아서, 대시보드에서 상태·단계·결과를 따라갑니다.
- 말로 확장합니다. 새 슬래시 명령·HTTP 엔드포인트·예약 작업·재사용 스킬 — 코어를 패치하지 않고 홈 아래 데이터로 추가합니다(그래서 업데이트가 깨끗하게 유지돼요).
- 내 앱의 LLM 백엔드로 씁니다. OpenAI 호환 클라이언트를 내장 게이트웨이(
POST /v1/chat/completions·GET /v1/models)로 향하게 하면, 내 앱이 이 풀을 그대로 물려받습니다 — 프로바이더 간 자동 폴백, 이미지 입력, 함수 호출 그대로 통과, 원하면 스트리밍까지. 프로바이더마다 SDK 하나씩 대신 엔드포인트 하나로요. 게이트웨이 토큰을 넣기 전엔 꺼져 있고, 응답은 내 앱으로 나갑니다 — 비서 인격이 새지 않아요. - 얼마 썼는지, 그리고 무엇이 답했는지 보입니다. 매 턴의 입력·출력 토큰과 캐시 적중률이 채팅에 바로 뜹니다 — 낭비가 짐작이 아니라 숫자로 보여요. 답변·도구 실행·백그라운드 작업마다 실제로 응답한 모델이 함께 붙습니다 — 한도에 걸려 폴백으로 넘어가면 내가 지정한 등급과 달라지기 때문입니다. 쉬고 있는 모델은
/status가 이름으로 알려줍니다. - 모든 모델에서 도는 훅.
settings.json에 Claude Code 식hooks블록을 넣으면 도구 호출을 관찰하거나 차단합니다(턴 앞뒤도요). 그 같은 설정이anthropic·codex·openai어디서 턴이 돌든 똑같이 동작합니다. 훅 참고.
뭘 시킬 수 있나
유능한 팀원한테 말하듯 — 텔레그램·CLI·HTTP 어디서든. 예시 몇 개:
코드 & 내 컴퓨터
- "
~/projects/api의 실패한 테스트 고치고 브랜치 하나 따줘." - "디스크 뭐가 잡아먹는지 보고 확실한 쓰레기만 정리해줘." (삭제 전엔 꼭 물어봅니다)
- "이 파일들 읽고 인증이 어떻게 도는지 설명해줘."
조사 & 글쓰기
- "오늘 AI 뉴스 조사해서 짧게 요약해줘."
- "이 메시지에 답장 초안 써줘: …"
- "내 용도에 두 라이브러리 비교하고 하나 추천해줘."
오래 걸리는 일도 기다림 없이
- "이 40개 페이지 긁어서 표로 만들어줘." → 무거운 일은 백그라운드 매니저에 넘기고 대화는 계속, 끝나면 알려줍니다.
- 반복·대량·단순 작업은 무료 로컬 모델에 위임 — 모델 프로파일에서 낮은 등급을
ollama로 지정해두면 그쪽으로 내려갑니다.
기억 & 예약
- "나 TypeScript 랑 공백 2칸 선호하는 거 기억해." → 모든 대화에 걸쳐 유지.
- "평일 아침 9시마다 X 요약해서 보내줘."
- "지난주 DB 관련해서 우리 뭐로 정했지?"
그냥 말로, 내 비서로 만들기
- "질문 3개 물어보는
/standup명령 추가해줘." → 명령을 등록(텔레그램 메뉴도 실시간 갱신). - "내 다른 앱이 호출할 HTTP 엔드포인트 하나 열어줘." → 코어 안 건드리고 연결.
- "이 작업 흐름을 재사용 스킬로 만들어줘."
어디서든 — 폰(텔레그램)·터미널(CLI)·내 앱(HTTP). 같은 비서, 같은 기억.
내 컴퓨터의 쉘·파일에 접근할 수 있고, 파괴적이거나 되돌릴 수 없는 작업 전에는 반드시 승인을 받습니다(
docs/security.md).
빠른 시작
Node 20+, git, LLM provider 하나(아래), 그리고 (선택) 텔레그램 봇 이 필요합니다.
⚠️ 먼저
docs/security.md를 읽어주세요 — 비서는 내 컴퓨터의 쉘·파일에 접근할 수 있습니다(Claude Code 와 같은 자기-선택 모델).
한 줄로:
# macOS · Linux
curl -fsSL https://raw.githubusercontent.com/tigu77/tiguclaw/main/install.sh | sh
# Windows (PowerShell — 관리자 권한 불요)
irm https://raw.githubusercontent.com/tigu77/tiguclaw/main/install.ps1 | iex
받고, 설치하고, 설정 마법사까지 이어집니다. 기본 위치는 홈 아래 tiguclaw/ — 바꾸려면 TIGUCLAW_DIR 를 지정하세요(TIGUCLAW_DIR=D:\tiguclaw). 필요한 건 Node.js 20 이상 + git 뿐이고, 이미 설치돼 있으면 덮지 않고 알려줍니다. (LTS — 20 · 22 · 24 — 를 권합니다. 네이티브 모듈 미리 빌드된 바이너리가 LTS 기준이라, 비-LTS 홀수 버전에서는 C++ 빌드 도구가 필요할 수 있습니다.)
git clone https://github.com/tigu77/tiguclaw.git && cd tiguclaw
node bin/tiguclaw.mjs onboard # 의존성 설치까지 알아서 — 이 한 줄이 전부
의존성이 없으면 onboard 가 먼저 깔고 진행합니다(npm ci 를 따로 칠 필요 없음).
설치가 끝나면 전역 tiguclaw 명령이 생기고, 그다음부터는 tiguclaw update 하나로
받고·설치하고·빌드하고·재시작까지 됩니다.
끝입니다. onboard 하나가 전부 안내해줘요: LLM 고르고, 키 붙여넣고(또는 텔레그램 봇 토큰 인식), .env·상시 서비스·검증까지 한 번에. 그다음 텔레그램 봇에게 메시지를 보내면 답합니다. (입력한 소유자 ID 만 허용 — allowlist 가 비면 봇은 잠깁니다.)
대시보드 열기
웹 대시보드는 데몬이 알아서 같이 띄웁니다 — 따로 실행할 명령이 없어요. 데몬이 떠 있으면:
여기가 본격 채팅 UI 입니다 — 도구 실행이 한 스텝씩 실시간으로, 답은 흐르듯, 세션 탭, 백그라운드 작업 패널까지. 7010 이 이미 쓰이고 있으면 .env 의 DASHBOARD_PORT 로 바꾸세요.
일부러 로컬 전용입니다. 대시보드는
127.0.0.1에만 바인딩되고 브라우저 로그인이 없습니다 — bridge 토큰은 서버 쪽에서 주입돼 페이지엔 안 닿으니, 이 포트에 닿는 것 자체가 곧 권한이에요. 폰에서 쓰고 싶으면 포트를 열지 말고 사설 네트워크로 터널링하세요(예:tailscale serve 7010).DASHBOARD_HOST=0.0.0.0은 그 대가를 알 때만.
대시보드가 안 보이면 십중팔구 HTTP_BRIDGE_TOKEN 이 없는 겁니다 — 데몬 로그에 dashboard: HTTP_BRIDGE_TOKEN not set … spawn skipped 가 찍혀요. npm run onboard 가 자동 생성하고, npm run doctor 가 확인해 줍니다.
provider 고르기
LLM 하나는 있어야 합니다. Ollama(무료·로컬·키 불필요)부터 Anthropic·OpenAI API 키, Claude/ChatGPT 구독, 그리고 OpenAI 호환 엔드포인트라면 무엇이든(OpenRouter·Groq·vLLM…) 됩니다. onboard 가 물어보며 안내하고, 나중에 바꿔도 능력은 그대로입니다.
→ 키 발급 방법·설정 예시·평소 쓰는 명령·업데이트·삭제는 설치와 운영 에 모아뒀습니다.
잘 안 되면 먼저 tiguclaw doctor 를 돌려보세요 — 키·홈·서비스·네이티브 모듈·전역 명령까지 한 번에 점검하고, 막힌 자리에 맞는 조치를 알려줍니다. 그래도 안 되면 이슈로 알려주세요(템플릿이 필요한 값만 정확히 묻습니다). 보안 문제는 공개 이슈 말고 SECURITY 를 봐주세요.
코드를 읽으실 거면 — 코드 지도(무엇이 어느 파일에) · 코어 경계 지도(부팅·라우팅·권한의 흐름) · 기여 안내.
어떻게 만들어졌나
- 코어 — 단일 LLM 런타임(어댑터 풀: claude / codex / openai / ollama / google) + 라우터 + SQLite 스토어(세션·메모리·transcripts).
- 채널 — 텔레그램 / CLI / HTTP 어댑터가 추상 의도를 채널별로 렌더.
- 플러그인 — 스케줄러(cron)·파일 워치·대시보드·http-bridge(대시보드 API + OpenAI 호환 게이트웨이)·self-growth(학습·제안) — 코어를 안 건드리고 확장.
- 능력은 데이터 —
<home>/아래 에이전트·스킬·메모리·훅으로 무한 확장(마이크로커널 + 플러그인 생태).
훅
훅은 정해진 순간에 비서가 실행하는 셸 명령입니다 — 하는 일을 관찰하거나, 어떤 동작을 실행 전에 차단합니다. Claude Code settings.json 의 hooks 포맷을 그대로 쓰기 때문에, 이미 Claude Code 훅을 써보셨다면 그대로 넘어옵니다.
배선된 이벤트는 다섯 가지입니다:
| 이벤트 | 발화 시점 | 대표 용도 |
|---|---|---|
UserPromptSubmit |
턴 시작 전 | 들어오는 프롬프트 로깅·게이팅 |
PreToolUse |
도구 실행 전 | 도구 호출 차단(예: 특정 경로 쓰기 거부) |
PostToolUse |
도구 반환 후 | 도구 결과 관찰·감사 |
SubagentStop |
위임한 서브에이전트 종료 후 | 위임 결과 검수·기록 |
Stop |
턴 종료 후 | 턴 후 알림·로깅 |
각 훅은 stdin 으로 작은 JSON payload(tool_name·tool_input·cwd 등)를 받습니다. PreToolUse 는 exit code 2 로 도구를 차단합니다 — 비서는 도구 결과 자리에 (stderr 로 넘긴) 사유를 보고 넘어갑니다. 그 외 non-zero exit 은 격리·로깅되어, 훅이 깨져도 데몬은 절대 죽지 않습니다.
<home>/settings.json 에 블록을 추가하세요. matcher 는 선택이고, 도구 이름을 정규식으로 받습니다(비우면 모든 도구):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{ "type": "command", "command": "~/.tiguclaw/hooks/guard-writes.sh" }
]
}
],
"PostToolUse": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "~/.tiguclaw/hooks/audit.sh" }
]
}
]
}
}
가드 스크립트는 허용한 디렉터리 밖 쓰기를 exit 2 로 거부할 수 있습니다:
#!/usr/bin/env bash
read -r payload
path=$(printf '%s' "$payload" | jq -r '.tool_input.file_path // empty')
case "$path" in
"$HOME"/projects/*) exit 0 ;; # 허용
*) echo "쓰기는 ~/projects 아래에서만 허용됩니다" >&2; exit 2 ;; # 차단
esac
알아두실 것 몇 가지:
- 같은 설정이 모든 LLM 에서 돕니다. 하나의
settings.jsonhooks블록이anthropic·codex·openai어디서 턴이 돌든 똑같이 동작합니다 — 단일 훅 엔진이 셋 다 굴리므로, 프로바이더별로 따로 배울 것도 관리할 것도 없어요. - 프로젝트별 훅.
<프로젝트>/.tiguclaw/settings.json에 같은 형식으로 쓰면, 비서가 그 폴더에서 일할 때만 발화합니다. Claude Code 를 쓰던 프로젝트라면<프로젝트>/.claude/settings.json의 훅도 그대로 읽으니 옮겨 적을 필요가 없습니다. 두 층은 덮어쓰지 않고 함께 돕니다 — 전역에 걸어둔 안전 훅을 프로젝트 설정이 조용히 끄는 일은 없어요. - 눈으로 볼 수 있습니다. 훅 실행은 대시보드 활동 모니터에 뜨고(차단은 붉은 틴트), 등록된 훅은 대시보드 인벤토리 🪝 훅 카테고리에 나옵니다.
훅은 도구 호출을 관찰하고 차단합니다. 그리고 UserPromptSubmit·PreToolUse 훅이 stdout 으로 뭔가를 쓰면 그게 맥락으로 들어갑니다 — 비서가 그 내용을 보고 판단해요. 아직 안 되는 건 하나입니다: 도구 입력 자체를 고쳐 넣는 것. 그건 다음 단계예요.
LLM 게이트웨이
내가 만든 앱이 tiguclaw 의 프로바이더 풀을 OpenAI 호환 API 로 빌려 씁니다 — 프로바이더마다 SDK 하나씩 대신 엔드포인트 하나로, 비서가 쓰는 크로스-프로바이더 폴백을 그대로요.
토큰을 주기 전엔 꺼져 있습니다. <home>/.env 에 하나 넣으세요:
LLM_GATEWAY_TOKEN=<충분히 긴 랜덤 문자열>
그다음 OpenAI 클라이언트를 http-bridge 포트(기본 7011, 127.0.0.1 바인드)로 향하게 하세요:
curl http://127.0.0.1:7011/v1/chat/completions \
-H "Authorization: Bearer $LLM_GATEWAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "tier:high",
"messages": [
{ "role": "system", "content": "너는 내 앱의 어시스턴트다." },
{ "role": "user", "content": "이걸 한 줄로 요약해줘: …" }
]
}'
| 경로 | 되는 것 |
|---|---|
POST /v1/chat/completions |
"stream": true 스트리밍(SSE 청크), image_url 이미지 입력, 내가 정의한 tools 를 모델에 그대로 통과. |
GET /v1/models |
model 에 넣을 수 있는 id 목록 — 명명 프로파일은 tier:<이름>, 그리고 설정된 provider:model 들. |
model 에는 provider:model(anthropic:claude-sonnet-5), 명명 풀을 쓰는 tier:<프로파일>, 또는 그 외 아무 값(= 게이트웨이 기본 풀로 폴백)을 넣습니다.
<home>/settings.json 에서 돌아가는 중에 조절하세요 — 매 요청 새로 읽으므로 재시작이 필요 없습니다:
{
"gateway": {
"enabled": true, // 킬 스위치 — 토큰은 둔 채로 끕니다
"models": ["tier:high", "anthropic:claude-sonnet-5"],
"maxConcurrency": 4 // 넘으면 429 — 앱이 폭주해도 비서가 굶지 않습니다
}
}
알아두실 것:
- 비서가 아니라 내 앱으로 답합니다.
system메시지가 그대로 쓰이고 tiguclaw 인격·도구·스킬·기억은 실리지 않습니다. 격리된 자리에서 도니system을 안 보내도 비서 컨텍스트가 새지 않아요. (백엔드 로그인 계정 정보처럼 LLM 제공사가 직접 싣는 건 tiguclaw 가 제어하지 못합니다.) - 호출 기록은 남고, 내용은 안 남습니다. 게이트웨이 호출이 내 대화에 섞이진 않지만, 대시보드 외부 호출 기록에 호출 사실은 남습니다 — 주고받은 내용 말고 어떤 모델로 몇 건을 처리했고 토큰·소요·성공 여부가 어땠는지만, 내 컴퓨터 안에.
- 함수 호출은 구독만으로도 됩니다.
tools를 실으면 어느 어댑터로 돌든 모델이 실행하지 않고tool_calls를 돌려줍니다 — API 키 없이 구독 로그인만으로.tool_choice의"none"·"required"·특정 함수 지정도 그대로 지켜집니다. - 응답은 반드시 셋 중 하나입니다 — 함수 호출 · 텍스트 · 명확한 에러. 빈 응답을 성공으로 돌려주지 않습니다.
- 브라우저 말고 앱 서버 에서 호출하세요. 토큰은 공유 비밀이고, 포트는 로컬호스트만 듣습니다.
- 비서와 다른 백엔드를 권합니다. 앱이 비서가 얹혀 사는 구독을 두들기면 양쪽에서 체감됩니다.
핵심 원칙
- Claude Code 슈퍼셋 — Claude Code 의 모든 능력을 포함하고 그 위에 확장.
- 멀티 LLM 동시 사용 — 작업별로 다른 모델을, 어댑터 무관하게 같은 능력으로.
- 항상 떠있다 — 스스로 재시작하는 상시 데몬.
- 다채널 단일 인격 — 어느 채널로 들어와도 하나의 비서.
- 진짜 일만 직접 만든다 — 코어는 최소로, 나머지는 데이터(컨벤션·prompt·skill·hook·memory)로 확장.
변경 이력
릴리스 노트는 CHANGELOG.md 참조 (이 프로젝트는 SemVer 를 따릅니다).
감사의 말
tiguclaw 는 몇몇 오픈소스 프로젝트 위에 서 있습니다.
- OpenClaw (MIT, © Peter Steinberger)
— 어댑터·능력 설계의 많은 부분에 영향을 줬습니다. codex OAuth 어댑터, 스킬 발견,
payload 정책 모두 OpenClaw 가 닦아놓은 패턴을 따릅니다. - 하네스 메타 스킬(서브에이전트 팀 + 오케스트레이션)은
revfactory/harness 를 적응·이식
(Apache-2.0) 했습니다 — tiguclaw 의 홈/스킬 모델과 멀티 LLM·서브에이전트 전용
런타임에 맞게 수정. - 그리고 tiguclaw 는 Claude Code 의 슈퍼셋이며 Anthropic 의
Claude Agent SDK 위에 만들어졌습니다.
세 곳 모두에 깊이 감사드립니다.
라이선스
Apache License 2.0 — LICENSE 참조.
v0.21.1 까지는 MIT 였습니다. 그때 받아 간 버전은 계속 MIT 조건으로 쓸 수 있고, Apache-2.0 은 그 이후 버전부터 적용됩니다.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found