Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Chrome 사이드 패널에서 OpenAB 다중 에이전트 채팅룸을 MCP‑over‑ACP 로 제어
Chrome Side Panel companion for OpenAB — a multi-agent chatroom with in-browser control for agents via MCP-over-ACP.
플러그인JavaScript · CSSGitHub @brettchien직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Katashiro (紙代 / 形代) - OpenAB Companion ⛩️ Katashiro (紙代 / 形代) is a sleek Chrome Extension Side Panel companion designed for OpenAB (Open Agent Broker). It connects via WebSockets using the Agent Client Protocol (ACP) to provide a premium, LINE-style single chatroom interface for real-time two-way communication with multiple AI agents, each connected over its own ACP endpoint. 🔮 The Metaphor of Katashiro (形代 / 紙代) In Japanese Onmyodo (陰陽道) and Shinto rituals, a Katashiro (形代 / 紙代) is a physical paper doll or vessel used to temporarily host spirits or represent individuals.README 전문 보기 ↗
Katashiro is a Chrome side-panel chat for your OpenAB agents. It connects to an OpenAB gateway over the Agent Client Protocol (ACP), and lets the agent see and operate the browser you are using.
/ in the composer) stops a reply, resets the agent's session or switches its model.katashiro.* tools: read the page, click, type, fill forms,
navigate, manage tabs, point things out to you, ask you multiple-choice questions. Writes stay
off until you allow them.In Onmyōdō, a katashiro is a paper doll a spirit can inhabit. Here the side panel is the doll, your OpenAB agent is the shikigami summoned into it, and the browser tools are its hands.
Runs on Chromium browsers (Chrome, Edge); not Firefox (Arc needs a chrome.sidePanel polyfill).
There is no build step.
katashiro-<version>.zip from Releases and unzip it
to a folder you will keep — or git clone https://github.com/brettchien/katashiro.git.chrome://extensions/, turn on Developer mode, click Load unpacked and pick the folder.Updating: replace the files (or git pull), click ↻ reload on chrome://extensions/ (or
Settings → 重新載入 Katashiro), then reopen the side panel. Chats, sessions and settings are kept.
Don't remove the extension to upgrade — Chrome deletes its synced settings on removal.
Settings (agents, tokens, switches) sync through your Google account; chat history and canvases stay in this browser. Katashiro does not run in incognito windows: whatever you send reaches the agent's session, so it could not keep an incognito promise.
ws://localhost:8080/acp).What the gateway needs. Chat needs OpenAB's ACP WebSocket (OPENAB_ACP_ENABLED=true, bearer
token OPENAB_ACP_AUTH_KEY — see the
ACP server ADR).
Browser tools also need the OAB MCP Facade ([mcp] in OpenAB's config.toml, with the agent's MCP
config pointing at it — see
Browser MCP agent setup);
without it the chat works but the agent has no browser tools.
Some features need the agent to follow a procedure, not just call a tool. The skills in
skills/ teach it that — install them into every agent that chats through Katashiro.
They are not in the release zip: take them from the repo (git clone, or download it from GitHub),
and install them where the agent runs (its machine or container), not where the browser runs.
| Skill | Teaches the agent to | Without it |
|---|---|---|
katashiro-show-image | Show you an image: a screenshot by imageId, or a file through scripts/show-image.sh, which sends it straight to the OpenAB facade | The agent has to emit the image as base64 itself — slow, costly, and large images fail |
katashiro-ask-user | Ask you a multiple-choice question on a card, then end its turn and wait for your answer as a new message | The agent may sit waiting or poll for the answer instead of ending the turn |
katashiro-point-at | Point at what it is explaining: glow an element or a canvas block, or emphasise several with temporary CSS | Works, but the agent rarely shows you where it means |
katashiro-guided-runbook | Walk you through an operation as a runbook canvas: you run every command, it marks the next step, checks your pasted output against Expected / Stop if, and keeps the execution log (resumes from the log after a reload) | The agent rebuilds the structure each time, may advance on output it never checked, and loses its place after a reload |
katashiro-canvas-file | Put a file into a canvas — an html page, a long report, a deck, an image — through scripts/canvas-file.sh, which sends it straight to the OpenAB facade | The agent has to send the whole file as tool arguments — slow, costly, and an html page (often ~1 MB) fails |
For Claude Code (including OpenAB's claude-agent-acp), copy or symlink them from a checkout of this
repo into the agent's skills directory:
cp -r skills/katashiro-* ~/.claude/skills/
Copy them again after updating Katashiro (git pull first) — an installed skill does not update itself.
show-image.sh needs bash, curl, jq and base64, and runs only in a Katashiro chat
(it uses the session's $OPENAB_SESSION_TOKEN).
The agent operates the browser as you, with whatever you are logged into. Reading works
always; writes (click, type, navigate, close tabs, …) are refused until you turn on act mode
(Settings → 瀏覽器寫入 → ✋ 可操作). With act mode on there is no per-action confirmation and no
site blocklist. Chrome's own Site access setting keeps the page tools off a site, but not the tab
tools: navigate / new_tab can still open it, and tabs still shows its tabs' URLs and titles.
Details: docs/tools.md → Act mode.
| Permission | Why |
|---|---|
sidePanel | The chat lives in Chrome's side panel. |
storage, unlimitedStorage | Settings (synced), chat history, sessions, and canvases with their versions and images (local; canvases have their own 200 MB budget). |
scripting, <all_urls> | Page tools read and act on the active tab. Writes still need act mode. |
tabs, tabGroups | Tab tools, and one tab group per conversation for its canvases and working tabs. |
contextMenus | 💬 Ask agent in the right-click menu of a web page: asks about the selection or the element right-clicked (nothing is sent until you press Enter). A small content script remembers the last element you right-clicked; it sends nothing anywhere. |
notifications | katashiro.notify, and alerts from a conversation you are not looking at: a question waits for you, or a reply finished or failed. |
sessions (optional) | Only for katashiro.reopen_tab; off until you allow it in Settings. |
Upgrading from 2.x, Chrome may ask you to accept notifications and unlimitedStorage, added in 3.0.
| Area | Tools |
|---|---|
| See the page | snapshot (accessibility tree with element refs — the main one), get_text, read_dom, get_selection, screenshot, scroll, hover, wait_for |
| Act on the page (act mode) | click, type, fill_form, select_option, press_key, upload_file, paste_image, navigate, history, reload, inject_css |
| Tabs and windows | tabs, tab_groups, new_tab, switch_tab, close_tab, reopen_tab, tab_update, group_tabs, ungroup_tabs, update_tab_group, split_tabs, unsplit_tabs |
| Talk to you | highlight, show_image, ask_user, notify, set_title, chat_history, client_info |
| Canvases | canvas_open, canvas_patch, canvas_read, canvas_list, canvas_delete, canvas_highlight, canvas_inject_css, canvas_goto, canvas_view, canvas_gallery |
| Natural-language grounding (optional, your own OpenRouter key) | assert, click_text, type_text |
Act mode gates more than the Act on the page row: the tab tools that open, switch, close, move or
group tabs, and click_text / type_text, are writes too. Parameters, results, limits, and which
tools are writes: docs/tools.md.
docs/adr/ — what is planned, and why things are the way they are.ask_user, show_image, chat_history, set_title, notify, client_info, canvas_*); it removed room mode (agent-to-agent relay) and incognito support.MIT. The libraries bundled in vendor/ keep their own licenses — see
THIRD_PARTY_NOTICES.md.
katashiro-archifyDraw an interactive diagram with Archify and show it as an html canvas (needs Archify's own skill and katashiro-canvas-file) |
| No Archify diagrams in canvases |