코딩 에이전트를 백그라운드에서 실행하고 변경 사항을 커밋하기 전에 작업 내용을 검증하는 TypeScript 기반의 오픈 에이전틱 런타임입니다.
다른 이름 agentproto/ts, @agentproto/app-client, @agentproto/harness, @agentproto/mcp-server, @agentproto/plugin-local-browser
- 스타
- 9
- Tools
- —
- 다운로드, 30일
- 28,785
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 14일
- 라이선스
- Apache-2.0
agentproto MCP란?
agentproto은(는) MCP server입니다. 코딩 에이전트를 백그라운드에서 실행하고 변경 사항을 커밋하기 전에 작업 내용을 검증하는 TypeScript 기반의 오픈 에이전틱 런타임입니다.
프로젝트 README에서 생성된 요약
agentproto MCP server 정보
이 TypeScript 런타임은 지속적인 수동 감독 없이 코딩 에이전트를 관리할 수 있는 백그라운드 환경을 제공합니다. Claude Code, Codex, Hermes, Mastra와 같은 다양한 기존 에이전트 CLI를 통합된 라이프사이클을 통해 실행할 수 있는 중앙 데몬 역할을 합니다. 개발자는 단일 인터페이스에서 여러 에이전트를 시작하고, 메시지를 보내고, 모니터링할 수 있어 작업이 진행되는 동안 터미널에서 벗어나 다른 업무를 볼 수 있습니다.
핵심 기능은 자동화된 체크를 사용하여 에이전트의 동작을 제어하는 능력입니다. 코드가 커밋되기 전에 변경 사항을 검증할 수 있도록 자체 테스트 스위트나 더 강력한 리뷰어 모델을 연결할 수 있습니다. 이 시스템은 에이전트가 다른 에이전트를 관리하는 중첩된 오케스트레이션, 예약된 cron 작업, 브라우저 자동화를 포함한 복잡한 워크플로우를 지원합니다. 또한 MCP 생태계와 통합되어 다른 server의 도구를 에이전트 세션으로 직접 가져오고 프록시할 수 있습니다.
사용하려면 CLI를 설치하고 로컬에서 데몬을 시작하면 됩니다. 사용하려는 에이전트에 따라 특정 어댑터 패키지가 필요합니다. 이 런타임은 세션 관리, 메모리 저장, 샌드박스 실행을 포함한 다양한 도구를 MCP를 통해 노출하므로 에이전틱 개발을 위한 포괄적인 프레임워크를 제공합니다.
활용 사례
- 1자동 코드 검증코딩 에이전트를 실행하여 모듈을 리팩터링하고 커밋하기 전에 테스트 통과 여부를 확인합니다.
- 2백그라운드 에이전트 오케스트레이션단일 명령 인터페이스를 통해 여러 코딩 에이전트를 동시에 관리합니다.
- 3예약된 에이전트 워크플로우cron 기능을 사용하여 에이전트가 수행할 반복 작업을 설정합니다.
- 4에이전트 기능 확장기존 MCP server를 가져와 에이전트에게 추가 기능을 제공합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
agentproto MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 agentproto MCP 설치
$ claude mcp add ts -- npx -y @agentproto/app-clientCursor에 agentproto MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"ts": {
"command": "npx",
"args": [
"-y",
"@agentproto/app-client"
]
}
}
}VS Code에 agentproto MCP 설치
.vscode/mcp.json
{
"servers": {
"ts": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@agentproto/app-client"
]
}
}
}VS Code CLI에 agentproto MCP 설치
$ code --add-mcp '{"name":"ts","type":"stdio","command":"npx","args":["-y","@agentproto/app-client"]}'Claude Desktop에 agentproto MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"ts": {
"command": "npx",
"args": [
"-y",
"@agentproto/app-client"
]
}
}
}Codex에 agentproto MCP 설치
$ codex mcp add ts -- npx -y @agentproto/app-clientCodex config.toml에 agentproto MCP 설치
~/.codex/config.toml
[mcp_servers.ts] command = "npx" args = ["-y", "@agentproto/app-client"]
Gemini CLI에 agentproto MCP 설치
$ gemini mcp add -s user ts npx -- -y @agentproto/app-clientGemini settings.json에 agentproto MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"ts": {
"command": "npx",
"args": [
"-y",
"@agentproto/app-client"
]
}
}
}자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
README
GitHub에서 보기agentproto/ts
Let your coding agents work without you watching.
agentproto runs Claude Code, Codex, Hermes, opencode, Mastra, and any other coding agent in the background, shows them all in one place, and checks each one's work — with your tests or a reviewer model — before anything is committed. No more babysitting terminal windows.
- Run them all the same way. Start, message, watch, and stop any agent with the same commands. Fifteen agents under one lifecycle today.
- Work checked before it lands. Attach a check — your tests, or a stronger model reviewing the change — and it runs each time the agent finishes. Commits wait for the check and your OK, even after you close your laptop.
- Keep the tools you have. It drives the agent CLIs you already use — nothing to rewrite. Agents can even run and check other agents.
- And a full toolbox around them. Author tools as files and serve them, import any MCP server and hand it to any agent, open tunnels, drive browsers, schedule workflows and cron runs.
The daemon is the flagship surface of something bigger: agentproto is an open agentic framework — the AIP specs define every agent component (tools, skills, agents, knowledge, workflows, policies) as a plain file with a declared contract, and this repo is the TypeScript runtime that loads, runs, and projects them into any host (CLI, HTTP, MCP, Mastra, Vercel AI SDK). Files with contracts is what lets any runtime load them — and lets agents read, write, and improve their own components.
Status: 1.32.0. APIs are stabilising; expect minor breaking changes between releases.
Quick start
Or bootstrap from zero in one line:
# macOS / linux
curl -fsSL https://raw.githubusercontent.com/agentproto/ts/main/scripts/bootstrap/install.sh | bash
# Windows 10/11 (PowerShell 5.1+)
irm https://raw.githubusercontent.com/agentproto/ts/main/scripts/bootstrap/install.ps1 | iex
Manual path:
npm i -g @agentproto/cli
agentproto install claude-code # auto-installs the adapter package too
agentproto serve # start the daemon (foreground)
agentproto sessions start claude-code --cwd . --prompt "refactor the payments module"
agentproto sessions --watch
Then gate it: attach a policy to any session's turn-end and stage the commit behind a human ack. See agentproto.sh for the full pitch, or jump straight to agentproto.sh/features for the honest split below.
What's live vs. roadmap
This repo ships two very different things under one name:
- Tier 1 — live, verified hands-on: the daemon, the CLI, fifteen agent adapters (Claude Code, Claude SDK, Codex, Gemini, Grok CLI, Hermes, jcode, opencode, Mastra Code + in-process, Mastra Agent, OpenClaw, browser-as-agent, Antigravity, pi), durable policy gates, nested orchestration with role gating, fan-in monitoring, workflows/cron, and an MCP surface (~175 tools) on the daemon itself.
- Tier 2 — the wider AIP spec family: 72 numbered specs live in
agentproto/agentproto. Most
reference-implementation packages beyond Tier 1 are
0.1.0-alphascaffolding — real schemas, real intent, not yet operational software.
Full breakdown: https://agentproto.sh/features. If you find a Tier 2 claim anywhere that reads as shipped, please file an issue — that split is the contract.
Contributing an adapter
The adapter contract is small: declare models[] and modes[] via an
AIP-45 manifest, implement the lifecycle verbs, and reuse the shared
provider-kit primitives (creds, catalog entry, setup/status tools). Obvious
gaps: Cursor (agent CLI, ACP-capable — not verified end to end), aider,
goose, cline, Continue. See adapters/claude-code
for a complete reference implementation, and look for good first issue
labels in the tracker.
VS Code extension
packages/vscode contains the private agentproto-vscode extension: local
operational views for daemon sessions and permissions, plus commands to manage
agents from the editor. Every Releases
asset is built in CI, never committed to the repo:
- Dev builds — every push to
maintouchingpackages/vscodepublishes a prerelease VSIX taggedvscode-dev-<sha>, for grabbing the bleeding edge. - Official releases — a "Version Packages" PR merge that included
vscode changes publishes a versioned VSIX tagged
vscode-v<version>, same cadence as every other package's release.
Install either through VS Code's Extensions: Install from VSIX... command.
To build one yourself instead:
cd packages/vscode
pnpm package
unzip -t agentproto-vscode-*.vsix
See packages/vscode/README.md for
development and verification commands.
Packages
The repo is organised into five layers, each a sibling subtree under
packages/ or adapters/.
1 — Runtime & daemon
@agentproto/runtime is the long-running gateway that turns a workspace into
a live AIP runtime: session management, an MCP server, an HTTP transport, the
HEARTBEAT autonomy loop, and append-only conversation persistence.
packages/runtime/ @agentproto/runtime Session lifecycle, MCP tools, HTTP API, supervisor / orchestrator
packages/cli/ @agentproto/cli `agentproto` binary — install adapters, run/serve sessions, daemon
packages/mcp-server/ @agentproto/mcp-server Per-doctype CRUD MCP tools (create/load/list/update/resolve/delete)
Key MCP tools exposed by the runtime:
| Tool | Purpose |
|---|---|
agent_start / agent_prompt / agent_output / agent_kill / agent_interrupt |
Spawn, drive, interrupt, and stop long-lived agent-CLI sessions |
message_parent |
Child session reports a result, progress update, or blocker up to its parent supervisor (resolved from the child's recorded parentSessionId; no session id argument) |
agent_set_model / agent_set_effort / agent_set_posture |
Best-effort live switches for a session's config axes (return {applied:false, reason} when the running adapter can't apply them live) |
agent_sessions_list / agent_export |
List agent sessions; export a clean transcript |
conversation_read |
Read the provider-native conversation behind any session (agent-cli or PTY) |
session_list / session_tree / session_usage / session_restart |
Canonical session list, hierarchy, usage, and resume |
session_archive / session_unarchive |
Hide / restore sessions from the canonical list (VS Code "show archived" toggle) |
session_rename / session_set_pinned |
Set or clear a session's user-facing title / label, or toggle its pinned sort flag |
session_flag_status |
Manually correct a session's awaitingInput / awaitingQuestion classification |
worktree_gc |
Plan/apply garbage collection of linked git worktrees |
terminal_start / terminal_input / terminal_output / terminal_kill |
Drive raw PTY sessions |
command_log_tail |
Read the JSONL audit log for command_execute |
policy_attach / policy_cancel / policy_status |
Supervisor completion-policy lifecycle |
workflow_run_file / workflow_start / workflow_status / workflow_cancel |
Run WORKFLOW.md and stage-barrier workflows |
app_install / app_run / app_list / app_status / app_stop |
Install and run @agentproto/app apps as live agent sessions |
app_apply / app_unapply / app_list_applied |
Mount / unmount apps to scopes with dependency validation |
app_data_read / app_data_write / app_data_list / app_data_migrate |
App-scoped durable data plane (read/write/list + legacy migration), anchored at the app's dataDir (default <dir>/data) |
harness_preset_list / harness_preset_create / harness_preset_delete / harness_preset_set_default |
Persisted harness→auth-profile presets |
workspace_brain_query / workspace_brain_status / workspace_brain_ingest |
Per-workspace transcript recall (BM25) |
memory_search / memory_list / memory_read / memory_write / memory_supersede / memory_archive / memory_dismiss |
AIP-72 memory store (memory.root, default ~/.agentproto/memory); anyone proposes, the operator or a supervisor commits; memory-bound agents get a spawn digest in their system prompt |
conversation_export |
Export a daemon transcript to a target adapter's native store (claude-code today) |
llm_endpoint_start / llm_endpoint_stop / llm_endpoint_status / llm_endpoint_set_upstream_link / llm_endpoint_list_links |
Local LLM Endpoint proxy sidecar (requires features.llmEndpoint) |
tunnel_create / tunnel_list / tunnel_stop / tunnel_revoke / tunnel_status |
Public URL tunnels for local ports (private signed link by default; public: true opts out; tunnel_revoke invalidates the link) |
list_provider_presets |
Gateway presets (Anthropic, Moonshot, OpenRouter, Requesty, DeepSeek, xAI) |
harness_list / harness_models / harness_install |
List installed harnesses (agent CLIs), page one harness's models, install one by slug (adapter_list / adapter_models / adapter_install are deprecated aliases) |
harness_capabilities |
Discover what an installed adapter can do on this host |
catalog_models |
Read-only catalog of runnable models + routes (daemon GET /catalog/models) |
list_sandbox_providers / setup_sandbox_provider |
Sandbox provider catalog and credentials |
sandbox_exec |
Run one command in a sandbox box (ephemeral, or an existing sandboxId) and return exit code + stdout/stderr |
list_eval_reporters / setup_eval_reporter |
Eval-reporter backends (e.g. Langfuse) |
browser_navigate / browser_extract_text / browser_click / … / list_browsers |
Browser page tools, forwarded to the Bureau MCP (defaults.browser.proxyImport, default bureau); fetch_page reads a URL without a browser |
mcp_discovered_list / mcp_imported_list / mcp_import / mcp_imported_remove |
Discover and curate imported MCP servers |
mcp_imported_status / mcp_imported_tool_list / mcp_imported_call |
Proxy imported MCP tools |
skill_import / skill_imported_list / skill_imported_remove / skill_resync |
Curate imported skills (a SKILL.md folder is copied into ~/.agentproto/skills/<id>/) for per-session delivery |
permissions_list / permissions_respond |
Held permission requests across permission-hold sessions |
cron_create / cron_list / cron_delete / cron_run |
Recurring daemon jobs (opt-in) |
role_list |
Enumerate spawn-time roles and delegation privileges |
daemon_health |
Cheap in-process liveness probe |
agentproto_session_story / agentproto_terminal |
Per-session story / live PTY MCP App panels |
agentproto_sessions / agentproto_bureau_sessions |
MCP App panel views |
2 — Adapter families
packages/provider-kit/ @agentproto/provider-kit Shared catalog, creds, setup-ledger, MCP tool primitives
packages/provider-presets/ @agentproto/provider-presets Shared gateway preset registry (Anthropic, Moonshot, OpenRouter, Requesty, DeepSeek, xAI, xAI-Anthropic, LLM Endpoint)
adapters/claude-code/ @agentproto/adapter-claude-code AIP-45 adapter for Claude Code
adapters/claude-sdk/ @agentproto/adapter-claude-sdk AIP-45 adapter for Claude SDK (Anthropic/Moonshot/OpenRouter gateway modes)
adapters/codex/ @agentproto/adapter-codex AIP-45 adapter for Codex
adapters/gemini/ @agentproto/adapter-gemini AIP-45 adapter for Gemini
adapters/hermes/ @agentproto/adapter-hermes AIP-45 adapter for Hermes
adapters/opencode/ @agentproto/adapter-opencode AIP-45 adapter for OpenCode
adapters/openclaw/ @agentproto/adapter-openclaw AIP-45 adapter for Openclaw
adapters/antigravity/ @agentproto/adapter-antigravity AIP-45 adapter for Google Antigravity
adapters/mastra-agent/ @agentproto/adapter-mastra-agent First-party agent — AIP-42 AGENT.md run as a live Mastra agent behind ACP
adapters/browser/ @agentproto/adapter-browser Browser / CDP session adapter
All agent-CLI adapters share the provider-kit primitives: makeSetupTool
(single-field or multi-field creds), computeStatus, AdapterCatalogEntry, and
makeCredsStore. mastra-agent is the odd one out: every other adapter wraps
an external agent CLI, whereas mastra-agent is ours end to end — an
AGENT.md run as a live Mastra agent (our loop, our models), spawned by the
daemon like any arm or standalone via agentproto-mastra acp.
3 — Tool authoring
The original three-layer model for tools consumed inside the runtime or projected into a host framework: contract → implementation → bundle.
packages/tool/ @agentproto/tool AIP-14 defineTool, ToolHandle, validators
packages/driver/ @agentproto/driver AIP-30 implementTool, defineDriver, runTool, resolver
packages/driver/cli/ @agentproto/driver-cli AIP-29 CLI/subprocess transport
packages/driver/http/ @agentproto/driver-http HTTP transport
packages/driver/mcp/ @agentproto/driver-mcp MCP server transport
packages/driver/sdk/ @agentproto/driver-sdk SDK / dynamic-import transport
import { defineTool } from "@agentproto/tool"
import { implementTool, defineDriver } from "@agentproto/driver"
import { z } from "zod"
const greetTool = defineTool({
id: "greet",
description: "Greets a name in the bound locale.",
inputSchema: z.object({ name: z.string() }),
outputSchema: z.object({ greeting: z.string() }),
contextSchema: z.object({ locale: z.enum(["en", "fr"]) }),
})
const greetBuiltin = implementTool(greetTool, async ({ input, context }) => ({
greeting: context.locale === "fr" ? `Bonjour ${input.name}` : `Hello ${input.name}`,
}))
const greetDriver = defineDriver({
id: "greet-builtin",
name: "Greet (builtin)",
description: "In-process greeter.",
kind: "builtin",
implements: [{ tool: "greet", version: "0.1.0" }],
implementations: [greetBuiltin],
})
Re-express any ToolImplementation in a host framework's tool shape:
adapters/ai-sdk/ @agentproto/adapter-ai-sdk Vercel AI SDK Tool projection
adapters/mastra/ @agentproto/adapter-mastra Mastra createTool projection
packages/bridge/ @agentproto/bridge AIP-42 AGENT.md → Mastra Agent
import { toAiSdkTool } from "@agentproto/adapter-ai-sdk"
import { toMastraTool } from "@agentproto/adapter-mastra"
const aiSdkTool = toAiSdkTool(greetBuiltin, { context: { locale: "en" } })
const mastraTool = toMastraTool(greetBuiltin, { source: { context: { locale: "en" } } })
4 — Knowledge & workflow
packages/corpus/ @agentproto/corpus AIP-10/12/18 knowledge composition (pure, no I/O)
packages/corpus-cli/ @agentproto/corpus-cli `corpus` binary — validate, lint, operate a corpus workspace
packages/workflow-runtime/ @agentproto/workflow-runtime AIP-15 typed step-walker (tool/map/branch/loop/transform)
packages/agent-runtime/ @agentproto/agent-runtime MultiAgentRuntime kernel with swappable ports
@agentproto/corpus composes AIP-10 KNOWLEDGE, AIP-12 PLAYBOOK, AIP-18
COLLECTION, AIP-9 OPERATOR, AIP-15 WORKFLOW, and AIP-41 ROUTINE into an
autonomous knowledge-improvement system. Pure: zero runtime, zero filesystem,
zero HTTP — all I/O via injected ports.
5 — Platform: auth, sandbox, secrets, telemetry
packages/auth/ @agentproto/auth Pluggable CredentialStore + device-code (RFC 8628) auth flow
packages/sandbox/ @agentproto/sandbox agent_start.sandbox: boot/reconnect/pause an isolated box
packages/secrets/ @agentproto/secrets Broker-resolved provision auth headers, mcp-header exposure
packages/processor/ @agentproto/processor Dependency-free Redactor port for transcript/log scrubbing
packages/telemetry/ @agentproto/telemetry Telemetry port + OTel adapter
packages/eval/ @agentproto/eval Scorers + runEval, including an LLM-judge scorer
Specifications
The AIP markdown specs live in agentproto/agentproto. Browse rendered versions at https://agentproto.sh/docs.
Key specs implemented here:
| AIP | Spec | Package |
|---|---|---|
| AIP-9 | OPERATOR.md | @agentproto/operator |
| AIP-10 | KNOWLEDGE.md | @agentproto/corpus |
| AIP-12 | PLAYBOOK.md | @agentproto/corpus |
| AIP-14 | TOOL.md | @agentproto/tool |
| AIP-15 | WORKFLOW.md | @agentproto/workflow, @agentproto/workflow-runtime |
| AIP-17 | RUNNER.md | @agentproto/runner |
| AIP-18 | COLLECTION.md | @agentproto/corpus |
| AIP-29 | CLI.md | @agentproto/driver-cli |
| AIP-30 | DRIVER.md | @agentproto/driver |
| AIP-36 | SANDBOX.md | @agentproto/sandbox |
| AIP-40 | EXTENSION.md | @agentproto/extension |
| AIP-41 | ROUTINE.md | @agentproto/routine |
| AIP-42 | AGENT.md | @agentproto/agent, @agentproto/bridge |
| AIP-45 | Agent CLI adapter | adapters/{claude-code,claude-sdk,hermes,opencode,codex,openclaw,mastra-agent,antigravity,jcode} |
| AIP-57 | Model resolution primitive | @agentproto/model-routing |
| AIP-62 | REVIEW.md | @agentproto/review |
| AIP-65 | DECISION.md | @agentproto/runtime |
| AIP-66 | Managed cloud agents (cloud:<vendor> target) |
@agentproto/runtime, adapters/claude-code-cloud |
Building from source
pnpm install
pnpm -r build
pnpm -r test
License
Apache-2.0 — see LICENSE. Copyright 2026 Jeremy André and agentproto contributors.
Contributing
Spec evolution happens at agentproto/agentproto. This repo tracks AIP progression — implementations follow as AIPs reach Review/Final status. PRs welcome for runtime bugfixes, perf, and adapter coverage — see "Contributing an adapter" above.
agentproto MCP 질문
agentproto MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add ts -- npx -y @agentproto/app-client를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
agentproto MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
agentproto로 어떤 코딩 에이전트를 실행할 수 있나요?
Claude Code, Codex, Hermes, opencode, Mastra 및 기타 15개의 에이전트를 단일 라이프사이클 내에서 실행할 수 있습니다.
agentproto는 코드 품질을 어떻게 보장하나요?
에이전트가 작업을 마칠 때마다 커밋이 이루어지기 전, 자체 테스트나 더 강력한 리뷰어 모델과 같은 체크 프로세스를 연결하여 실행할 수 있습니다.
기존 MCP server를 이 런타임과 함께 사용할 수 있나요?
네, 모든 MCP server를 가져와 프레임워크 내에서 실행 중인 에이전트에게 전달할 수 있습니다.
macOS 또는 Linux에서 agentproto를 어떻게 설치하나요?
문서에 제공된 단일 curl 명령어를 사용하여 설치를 시작할 수 있습니다.