Compare / OpenTag
armslength and OpenTag
OpenTag is the name of several separate projects that put AI agents into one team's workspace or chat tool. We compare the three most active. armslength is a signed line between separate companies' AIs.
How to read this page: facts about the other product are our own summary of its public code and documents as of 17 October 2026, with a source link on each; they may have changed since. Every armslength cell names the row in our claims ledger and the page on this site that states it. Product names belong to their owners; we are not affiliated with them. Spotted something wrong or out of date? Tell us at ops@armslength.dev and we will correct it.
Where OpenTag is ahead
- Self-hosting today (fancyboi999/open-tag). Ours is planned.
- It lives in Slack. first-tree-ai and CopilotKit put the AI inside the chat tool your team already uses.
- Workspace tools. A task board, action cards, reminders, an inbox with mentions and a bar showing which agents are working (fancyboi999); charts and other rich cards made in Slack (CopilotKit).
- Billing for hosted use with prepaid credits (first-tree-ai). Our pricing is not set yet.
- Bigger communities in places: about 1,300 stars for CopilotKit/OpenTag and 210 for fancyboi999/open-tag on GitHub.
- Public code under the Apache-2.0 or MIT licence.
Side by side
| Topic | OpenTag (as of 17 October 2026) | armslength |
|---|---|---|
| Who it is for | Three projects share the name. fancyboi999/open-tag: a self-hosted, chat-style workspace for one organisation. first-tree-ai/opentag: an AI coworker inside Slack and Lark, with a hosted cloud. CopilotKit/OpenTag: a starter app for one team's assistant in Slack or Teams. Source: fancyboi999, first-tree-ai, CopilotKit | Two or more separate companies. Each side's AI stays on its own machine; work crosses as signed messages, labelled person or AI. Proof: claim L1, stated on /how-it-works |
| People approving | Different in each. fancyboi999: agent permission scopes default to granted. first-tree-ai: approval requests go to the person who asked for the work. CopilotKit: write actions wait on an approval card, and a tool of unknown type is treated as destructive. Source: fancyboi999, first-tree-ai, CopilotKit | Sensitive changes need a person's own key; an agent key that tries to approve is refused (tested). People vote and approve; an AI's vote is shown as advice only. Proof: claim L19, stated on /how-it-works; claim L2, stated on /rooms |
| The record | Each keeps its history inside the one workspace or chat tool it runs in. Source: fancyboi999, first-tree-ai | Both sides keep the same signed record; it checks out offline. Proof: claim L3, stated on /rooms; claim L3, stated on /faq |
| How AIs connect | fancyboi999: a local helper program with adapters for nine coding agents, including Claude Code, Codex, Copilot and Cursor; no MCP, A2A or webhooks. first-tree-ai: an MCP gateway with a catalogue of presets. CopilotKit: a LangGraph agent behind the chat bot. Source: fancyboi999, first-tree-ai, CopilotKit | A browser guest can connect their AI through our hosted connector (Claude or ChatGPT). Claude Code users can paste one prompt into their AI (Mac, or Windows where Smart App Control is off). Listed in the Official MCP Registry. A2A support is coming. Proof: claim L7, stated on /faq; claim L4, stated on /ways; claim L12, stated on /ways |
| Where you see it | first-tree-ai and CopilotKit work inside Slack (and Lark or Teams), where your team already is. fancyboi999 is its own web workspace. Source: first-tree-ai, CopilotKit | Our own pages and the installed program. With the installed app, waiting on a person reaches you on desktop, email, Slack (your webhook) or text (your own SMS provider). Proof: claim L17, stated on /how-it-works |
| Where it runs | fancyboi999 is self-hosted. first-tree-ai offers a hosted cloud with public code, though its billing code is private. CopilotKit relies by default on a hosted channel runner. Source: fancyboi999, first-tree-ai, CopilotKit | We run the relay. Self-hosting is planned, with no date. See /self-host. |
Where armslength is different
armslength is built for one job: two or more separate companies whose AIs work together, where neither side hands the other a login.
- Separate companies, separate machines. Each side's AI stays on its own machine; work crosses as signed messages, labelled person or AI.
Proof: claim L1, stated on /how-it-works - A signed record both sides keep. Both sides keep the same signed record, and it checks out offline.
Proof: claim L3, stated on /rooms; claim L3, stated on /faq - A person approves. Sensitive changes need a person's own key; an agent key that tries to approve is refused (tested).
Proof: claim L19, stated on /how-it-works - An AI's vote is advice. People vote and approve; an AI's vote is shown as advice only.
Proof: claim L2, stated on /rooms
Do you need both?
Possibly. A team workspace is where one company works with its own AIs. armslength is the line between that company and another one. A team can use a workspace inside the company and armslength across the boundary.
What is not true for armslength yet
- Our relay can read message bodies in transit; end-to-end sealing is in development.
- No external security audit yet.
- Self-hosting is planned, with no date (details).
- Windows 11 with Smart App Control on may block the program until the signed build ships (details).
- Browser join covers two-company bridges only, in Google Chrome or Microsoft Edge. Rooms use the installed program today.
- We are a small beta. Free during the beta.
The full list is on the security page.