[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-106574":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":34,"updatedAt":35,"readmeContent":36,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},106574,"tucano","eduwxyz\u002Ftucano","eduwxyz","Your team of AI agents, on your Mac, Windows or Linux. Agents that talk in channels, write code, review each other and use your tools, on the Claude Code, Codex, OpenCode or Pi you already have. Anything that touches the real world waits for your yes.","https:\u002F\u002Ftucano.sh",null,"TypeScript",135,25,51,13,0,18,77,113,91.94,"Apache License 2.0",false,"main",[25,26,27,28,29,30,31,32,33],"agent-team","ai-agents","claude-code","codex","electron","local-first","macos","mcp","multi-agent","2026-11-02 18:33:36","2026-11-02 19:56:56","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"build\u002Ficon.png\" width=\"112\" alt=\"Tucano\">\n\n# Tucano\n\n**Your team of AI agents, on your computer. Your rules.**\n\nAgents that talk in channels, write code, review each other and use your team's tools.\u003Cbr>\nThey do the work. Anything that touches the real world waits for your yes.\n\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Feduwxyz\u002Ftucano?color=FF8A1F&label=release)](https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-141210)](LICENSE)\n[![macOS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FmacOS-Apple%20silicon-141210?logo=apple)](#install) [![Linux](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLinux-x64%20%7C%20ARM64-141210?logo=linux&logoColor=white)](#install) [![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWindows-10%20%7C%2011-141210)](#install)\n[![Runs on](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fruns%20on-Claude%20Code%20·%20Codex%20·%20OpenCode%20·%20Pi-E2541B)](#runs-on-what-you-already-have)\n\n**English** · [Português](README.pt-BR.md) · [tucano.sh](https:\u002F\u002Ftucano.sh) · [@tucanosh](https:\u002F\u002Fx.com\u002Ftucanosh) · [Changelog](CHANGELOG.md)\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F533e1bf1-b4ca-4f4a-aad4-e015c6b4c421\n\n\u003C\u002Fdiv>\n\n---\n\n## Why Tucano\n\nCoding agents got good. Working with *several* of them is still a mess of terminals, copy-paste between sessions, and hoping nothing runs that shouldn't. Tucano puts them in one place that feels like your team's chat, and gives you the controls a team lead would want.\n\n- **A team, not a prompt box.** Agents with names, roles, tools and memory. They talk in channels, call each other with `@mentions` and hand work over: one finds the bug, another fixes it, a third reviews it, and you get the result.\n- **Your rules.** Each agent sees only the tools you give it, with *no access*, *read*, or *read and write* per tool. Merges, purchases, posts, emails and deletes become an approval tied to the exact action, on your computer or your phone.\n- **Runs on what you already have.** Agents think with the Claude Code, Codex, OpenCode or Pi on your computer, the way you set them up: your subscription, your company's AI gateway, or your providers. No API key to paste, no per-token bill from us, and Tucano never sees your password.\n- **Everything stays on your computer.** Conversations, memory, logins, files. There is no Tucano server.\n\n## What it does\n\n### Channels where agents work together\n\nCreate a channel, add the agents, and ask. Mention someone with `@`, or don't, and a router picks who answers. Agents pass the turn to each other with `@mentions`, so a request can travel from investigation to fix to review on its own, and every step shows up in the conversation: what it searched, read, ran and edited, with a receipt of tokens and time.\n\n\u003Cimg src=\"docs\u002Fimages\u002Fconversation.png\" alt=\"A channel where Iris found the error in Datadog, Leo fixed it and opened a merge request, and Nico reviewed it and asks for approval to merge\" width=\"880\">\n\n### Connect any tool, even your company's internal ones\n\nTucano speaks [MCP](https:\u002F\u002Fmodelcontextprotocol.io). Add Jira, GitLab, GitHub, Slack, Linear, Figma, Notion, Datadog, Sentry, or the internal server at `mcp.yourcompany.internal`: remote servers with OAuth or a token, or local ones. Then decide, per agent and per tool, what it can touch.\n\n\u003Cimg src=\"docs\u002Fimages\u002Fconnectors.png\" alt=\"The Connectors page with Datadog, GitLab, Jira, Slack and an internal inventory server\" width=\"880\">\n\n### You decide how far each one goes\n\nWrite actions that matter wait for your OK, with the exact call and its arguments in front of you. Approve once, always allow a safe one, or refuse with a reason the agent reads. Approvals also reach your phone through Telegram. Each agent has a monthly token limit and a ceiling per reply, and **Pause everything** stops all agents at once.\n\n\u003Cimg src=\"docs\u002Fimages\u002Fapproval.png\" alt=\"An approval card: Nico asks to run GitLab merge_merge_request on loja\u002Fcheckout !412\" width=\"880\">\n\n### It learns as you use it\n\nAgents remember what matters about you, your projects and your preferences, and you see, approve, edit and forget every memory. When an agent keeps taking the same path, it proposes a **skill**, a written recipe the whole team can follow. Skills you already use in Claude Code and Codex come in with one click.\n\n\u003Cimg src=\"docs\u002Fimages\u002Fmemory.png\" alt=\"The Memory page, with a memory to review: prefers that the agent opens the merge request with a test for the case that broke\" width=\"880\">\n\n### Routines, on a calendar\n\nSchedule work for a day and time, or for when something new shows up in a connector: a new issue, a failing monitor, an email. Your week appears as a calendar with how each run went, and quiet hours keep the night quiet.\n\n\u003Cimg src=\"docs\u002Fimages\u002Froutines.png\" alt=\"The Routines page: a week calendar with the squad summary, Pix in production, the weekly post and the Friday closing\" width=\"880\">\n\n### Tuca builds agents with you\n\nMissing someone on the team? Tell Tuca what you need, the way you'd explain it to a new colleague, and it drafts the agent: name, role, instructions, model and tools, for you to create, edit or adjust.\n\n### Every answer with a receipt\n\n**Usage and limits** shows each agent's month against its limit and your subscription's windows. The weekly **Report** shows what each issue cost, in tokens and replies, and where the time went.\n\n\u003Cimg src=\"docs\u002Fimages\u002Fusage.png\" alt=\"Usage and limits: each agent's tokens this month and the subscription windows\" width=\"880\">\n\n### Computers and browsers of their own\n\nGive an agent a computer, an isolated Linux in Docker where it installs, runs and tests, or, if you choose so, your own computer. Lend it a folder or a repository. Give it a browser of its own, a Chrome you can watch live and take over when it needs to sign in somewhere.\n\n### Your own apps\n\nGive an agent the apps on your computer, such as Notes, Calendar or Spotify, each one *read only* or *read and use*. It reads a window the way assistive technologies do and clicks and writes in it, without touching your mouse. Anything that sends, pays, publishes, schedules or deletes waits for your approval. It works on macOS, Windows and Linux, through [agent-desktop](https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-desktop), open source from Vercel Labs.\n\n## Runs on what you already have\n\n| Harness | Sign in with | Notes |\n|---|---|---|\n| [Claude Code](https:\u002F\u002Fcode.claude.com) | Claude Pro or Max, or your company's login | Reads only the `env` block and `apiKeyHelper` of your `~\u002F.claude\u002Fsettings.json`; hooks, plugins and permissions stay out |\n| [Codex](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) | ChatGPT Plus, Pro or Business | Runs with a home of its own, so your skills, `AGENTS.md` and plugins don't leak in; you sign in once inside Tucano |\n| [OpenCode](https:\u002F\u002Fopencode.ai) | The providers you configured | Uses the models you have logins for |\n| [Pi](https:\u002F\u002Fpi.dev) | The providers you configured | Uses the models you have logins for |\n\nEach agent picks its harness and model, so a team can mix them: Opus to fix, GPT to review, Haiku to route.\n\n**Behind a company gateway?** If your Claude Code or Codex already sends requests to your company's AI proxy, Tucano's agents go the same way, with no extra setup. Telemetry and error reports of a harness on a gateway stay off, and the model list comes from the gateway itself. To use only the gateway, uncheck the other harnesses in **Settings → Models**.\n\n## Install\n\n**You need** a Mac with Apple silicon (M1 or later; tested on macOS 26) a Linux PC (x64 or ARM64; tested on Ubuntu with KDE and Xfce) or a Windows 10 or 11 PC (x64), and at least one harness, installed and signed in. On Windows, also [Git for Windows](https:\u002F\u002Fgit-scm.com\u002Fdownload\u002Fwin): its Git Bash runs agents' commands on your PC, and Claude Code needs it there too. Optional: Docker to give agents a Linux computer ([Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F) on a Mac or Windows; Docker Engine or Docker Desktop on Linux), and Google Chrome (or Chromium, on Linux) for their browser (without it, the built-in browser is used).\n\n**1. Install a harness.** Claude Code is the quickest:\n\n```bash\ncurl -fsSL https:\u002F\u002Fclaude.ai\u002Finstall.sh | bash\nclaude auth login\n```\n\nOn Windows, in PowerShell: `irm https:\u002F\u002Fclaude.ai\u002Finstall.ps1 | iex`, then `claude auth login`. Prefer Codex? `npm install -g @openai\u002Fcodex`. You'll sign in from inside Tucano.\n\n**2. Install Tucano.**\n\n- **On a Mac:** [download the .dmg](https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest\u002Fdownload\u002Ftucano-mac-arm64.dmg), open it and drag Tucano into **Applications**. The app is signed and notarized by Apple, so it opens with no warning.\n- **On Ubuntu, Debian and their family** (Mint, Pop!_OS…): [download the .deb](https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest\u002Fdownload\u002Ftucano-linux-amd64.deb) and open it, or run `sudo apt install .\u002Ftucano-linux-amd64.deb`.\n- **On other Linux distributions:** [download the AppImage](https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest\u002Fdownload\u002Ftucano-linux-x86_64.AppImage), make it executable (`chmod +x`) and open it. It needs FUSE, which most systems have. On Ubuntu 24.04 and later, prefer the .deb: it installs the AppArmor profile Electron apps need there.\n- On ARM64 Linux, take the files that end in `-arm64` (`tucano-linux-arm64.deb`, `tucano-linux-arm64.AppImage`).\n- **On Windows:** paste this in PowerShell. It installs Tucano for your user, with no admin rights, and opens it:\n\n  ```powershell\n  irm https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest\u002Fdownload\u002Finstall.ps1 | iex\n  ```\n\n  Or [download the installer](https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest\u002Fdownload\u002Ftucano-win-x64.exe) and open it. It isn't code-signed, so the first time Windows says it protected your PC: click **More info**, then **Run anyway**. The PowerShell command skips that warning, since a file PowerShell downloads isn't marked as coming from the internet.\n\nOr from the Terminal, on a Mac or on Linux:\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano\u002Freleases\u002Flatest\u002Fdownload\u002Finstall.sh | sh\n```\n\nIt downloads the latest release and opens it. On a Mac it puts Tucano in **Applications**; on Linux it installs the .deb with apt (it asks for your password) or, without apt, the AppImage in `~\u002F.local\u002Fbin` with an entry in the applications menu. Run on Windows (in Git Bash, say), it points you to the PowerShell command above.\n\n**On a server** (a VPS, to keep routines running while your computer sleeps): Tucano can also run without a window and be used from a browser. See [docs\u002Fserver.md](docs\u002Fserver.md). This is experimental.\n\nFrom 0.1.2 on, Tucano updates itself: it downloads a new version in the background and shows **Restart** in the sidebar when it's ready (or it goes in the next time you quit). Earlier versions update with the same download or command. On Linux the AppImage and the .deb update themselves too; the .deb asks for your password to put the update in. So does Windows, with no warning.\n\n**3. The first run is the setup.** Tucano speaks English and Portuguese; pick one on the first screen, or later in **Settings**. Then, in a few steps: your name; which harnesses agents may use (each with a **Test now** button that sends a real question); the models that route channels and keep memory; what every agent should know about you; your tools (optional); your skills (optional); and your first agent, from a template or from scratch. It ends in a `#general` channel with your agent already working.\n\nThe first time Tucano saves a connector password, macOS asks whether it may use the **Keychain**: click **Always Allow**. On Linux it uses the system keyring (GNOME Keyring or KWallet); with none open, Tucano doesn't save passwords, and says how to set one up. On Windows there's nothing to allow: Windows encrypts the key with your user's login.\n\n## Using it\n\n| | |\n|---|---|\n| **⌘K** | Go to any channel, conversation, agent or page by typing its name |\n| **⌘N** | New channel |\n| **⌘1 … ⌘9** | Channels, in sidebar order |\n| **⌘,** | Settings |\n| **Right-click** | On a channel: agents, rename, delete. On an agent: message, edit, archive |\n\nOn Linux and Windows, use **Ctrl** instead of **⌘**. Closing the window keeps Tucano running in the tray, by the clock (routines and triggers go on); quit it from the tray icon.\n\n- **Connect a tool:** **Connectors → Add**, paste the MCP server's address. OAuth servers open the browser; the others ask for a token. Then, on each agent's page, set its access to each connector.\n- **Archived agents** leave the sidebar and stop answering, but keep their history and receipts. Find them under **Archived** to bring them back.\n- **Approve from your phone:** connect the Telegram bot in **Settings → Phone and GitHub**; approvals and questions arrive with their buttons.\n- **Getting started**, in the sidebar, walks you through the rest: build a team, connect a tool, teach the memory, schedule a routine, lend a project.\n\n## How it works\n\n```mermaid\nflowchart LR\n  subgraph Mac[\"Your computer\"]\n    UI[\"Window\u003Cbr\u002F>(React)\"] \u003C-->|MessagePort| Core[\"Core process\u003Cbr\u002F>SQLite · runs · memory · routines\"]\n    Core -->|\"one turn, isolated\"| CLI[\"Harness CLI\u003Cbr\u002F>claude · codex · opencode · pi\"]\n    CLI -->|\"secret per-turn URL\u003Cbr\u002F>only this agent's tools\"| GW[\"Tucano MCP gateway\"]\n    GW --> Tools[\"Connectors (MCP)\u003Cbr\u002F>computer · browser · memory\"]\n    GW -.->|\"write action\"| OK{{\"Your approval\"}}\n  end\n  CLI --> Model[\"Your subscription\u003Cbr\u002F>or company gateway\"]\n```\n\n- **Main process** (Electron): the window, notifications, the agents' browsers, the system's vault (the macOS Keychain, the Linux keyring, Windows' data protection).\n- **Core** (a utility process): SQLite, harnesses, runs, connectors, memory and routines. No agent work runs in the window.\n- **Each reply** opens the harness CLI isolated from your personal configuration, with no built-in tools and no saved session. Tucano builds the context every turn: the workspace, the agent's instructions, its memories and skills, and the recent conversation.\n- **The gateway** is a local MCP server and the CLI's only source of tools. Each turn gets a secret URL listing just that agent's tools; any other call is refused. Sensitive calls stop there and become an approval, which runs exactly the call you saw.\n\nMore on the permission model in [SECURITY.md](SECURITY.md).\n\n## Your data\n\nEverything lives in `~\u002FLibrary\u002FApplication Support\u002FTucano\u002F` (on Linux, `~\u002F.config\u002FTucano\u002F`; on Windows, `%APPDATA%\\Tucano`): the database (`tucano.db`), a daily backup in `backups\u002F`, each agent's computer folder and the files agents show you. Connector passwords and tokens are encrypted with a key in the macOS Keychain (on Linux, the system keyring; on Windows, protected by your user's login) before they reach the database.\n\n\u003Cdetails>\n\u003Csummary>Uninstall\u003C\u002Fsummary>\n\n1. Quit Tucano (⌘Q) and delete `\u002FApplications\u002FTucano.app`.\n2. To delete your data too: `rm -rf ~\u002FLibrary\u002FApplication\\ Support\u002FTucano`.\n3. If you used the Linux computer, delete the `tucano-*` containers in Docker Desktop.\n4. Optionally, delete the **Tucano Safe Storage** item in Keychain Access.\n\nOn Linux: quit Tucano from its tray icon, then `sudo apt remove tucano` (or delete `~\u002F.local\u002Fbin\u002FTucano.AppImage` and `~\u002F.local\u002Fshare\u002Fapplications\u002Ftucano.desktop`). Your data is in `~\u002F.config\u002FTucano`.\n\nOn Windows: quit Tucano from its icon by the clock, then uninstall it in **Settings › Apps › Installed apps**. Your data stays in `%APPDATA%\\Tucano`; delete that folder to remove it too.\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Troubleshooting\u003C\u002Fsummary>\n\n**Claude Code shows as \"not installed\".**\nTucano looks for `claude` in the same `PATH` as your Terminal. Run `which claude`: if nothing comes back, the install didn't finish. If it does, quit Tucano (⌘Q) and open it again.\n\n**Claude Code shows as \"not signed in\".**\nRun `claude auth login` in the Terminal, then click **Check again** in Settings.\n\n**An agent stopped at its limit.**\nEach agent has a monthly token limit. Raise it on the agent's page, or see the usage in **Usage and limits**.\n\n**\"Docker isn't running\" when starting the Linux computer.**\nOn a Mac, install and open [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F). On Linux, install Docker Engine (`sudo apt install docker.io`) and start it (`sudo systemctl start docker`), or use Docker Desktop. Without Docker, choose **None** or **This computer** as the agent's computer.\n\n**\"Your user has no access to Docker\" (Linux).**\nAdd yourself to the `docker` group with `sudo usermod -aG docker $USER`, then log out and back in.\n\n**A connector needs authorization.**\nClick **Authorize in the browser**, on the agent's page or in Connectors, and sign in to the tool.\n\n**\"This Linux has no keyring open\" when saving a password.**\nTucano keeps passwords only in the system keyring. Install `gnome-keyring` (or turn on KWallet, on KDE), log out and back in, and try again.\n\n**The AppImage doesn't open on Ubuntu 24.04 or later.**\nUbuntu restricts the sandbox Electron apps use. Install the .deb instead: it brings the AppArmor profile that allows it.\n\n**\"Windows protected your PC\" when opening the installer.**\nThe installer isn't code-signed, so SmartScreen doesn't know it yet. Click **More info**, then **Run anyway**, or install with the PowerShell command, which doesn't get the warning. On a company PC, IT may block apps that aren't signed.\n\n**macOS asks for the Keychain after updating from 0.1.0.**\n0.1.0 wasn't signed with Tucano's Apple certificate; later versions are, so it asks only this once. Click **Always Allow**.\n\u003C\u002Fdetails>\n\n## Development\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Feduwxyz\u002Ftucano.git\ncd tucano\nnpm install\nnpm run dev\n```\n\nYou need Node 24+ and one harness signed in. `npm run dev` keeps its own data in `~\u002FLibrary\u002FApplication Support\u002FTucano Dev` (on Linux, `~\u002F.config\u002FTucano Dev`), apart from an installed Tucano. With `TUCANO_FAKE_ENGINES=1`, agents answer with a scripted engine and a sample team, with no subscription at all.\n\n| Command | What it does |\n|---|---|\n| `npm run dev` | The app with hot reload |\n| `npm run typecheck` | Type checks everything |\n| `npm test` | The core's tests: CLI stream parsers with recorded outputs, context, runs, limits, governance, routines, memory |\n| `npm run build` | Builds into `out\u002F` |\n| `npm run install-app` | Builds `Tucano.app` and installs it in `\u002FApplications` |\n| `npm run release` | Builds the `.dmg` and `.zip` and publishes `package.json`'s version as a GitHub release (`-- --no-publish` only builds) |\n| `node scripts\u002Fscreens.mjs \u003Cfolder>` | Opens the build with Playwright on a temporary database and saves screenshots |\n| `npm run dist:win` | On Windows: builds the installer, `dist\u002Ftucano-win-x64.exe` (not code-signed) |\n\n**On Windows?** Development works there too, with Git for Windows. See [docs\u002Fwindows.md](docs\u002Fwindows.md) for what you need, how it differs from the Mac, and every change made for it.\n\nRead [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request. The original design document, in Portuguese, is in [docs\u002Fspec-mvp.md](docs\u002Fspec-mvp.md).\n\n## License\n\n[Apache-2.0](LICENSE). Tucano is not affiliated with Anthropic, OpenAI or any of the tools it connects to.\n\nThe apps feature runs on [agent-desktop](https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-desktop) by Vercel Labs (Apache-2.0), installed separately. Thank you!\n",2,"2026-11-03 04:32:22","CREATED_QUERY"]