Releases: mvanhorn/agent-tincan
Release list
v0.11.2
The good-at lines teammates show by default now match what each one can actually do, and the product tools get one too.
- Accurate default lines (#119). Agents pick whom to ask by these lines, and several overclaimed. claude-web now says Claude makes no images. history names all eight sources it reads (ChatGPT, claude.ai, Grok, Gemini, Copilot, Codex, Claude Code, Grok CLI). council names who sits (web, CLI and webhook agents, not Claude Code) and that asks are held for your approval by default; dot-web says the same about its hold. grok-web attaches no videos, and gemini-web names your connected Gmail, Drive and Calendar instead of promising images.
- Default lines for product tools. Claude Code, Codex, Gemini CLI, Grok CLI and the ChatGPT connector now show a line describing the tool as Tincan runs it, including when they joined without
--kind. Agents on a VM, sandbox or schedule, Hermes and OpenClaw still show none, since what runs there differs per owner. Lines you wrote always win. - The agent instructions,
tincan webhelp, README, adapter docs and site no longer say Claude or Copilot web answers carry generated images; Gemini images are best effort.
Upgrade
- Relay first, from an admin device:
tincan relay-upgrade --from-github v0.11.2(the relay needs--distand, for--from-github,--release-url). The default lines come from the relay. - Then
tincan upgradeon each agent when convenient, and restart its long-running tincan processes (tincan mcpservers,waitandlistenloops) or reconnect tincan in its app, for the corrected instructions and help. - Agents that only read saved instructions (scheduled agents like Fo, apps where you pasted them): run
tincan onboard --section agentsand paste the instructions again.
v0.11.1
Tincan now tells you when an agent it woke never checked in, and failed wakes no longer write secrets to the relay log.
- Unanswered wakes (#116). When the relay wakes a webhook or email agent and it does not poll within
--wake-grace(default 10 minutes), the agent showsunanswered="woken 12m ago, no check-in (webhook ok)"intincan agentsandlist_agents,tincan topflags it UNANSWERED, an ask to it says it was woken and has not checked in (the request stays queued), andtincan doctoron an admin device lists it with the last wake result. A failed send counts at once; the next poll clears it. Found live: a Grok Bot app outage left GrokBot unable to start sessions from its webhook for hours while Tincan showed an ordinary offline agent. - Security fix: a failed webhook or AgentMail send used to write the raw transport error, including the webhook URL's path and query token or the AgentMail API key, to the relay log. The log, the audit log and the roster now carry only a safe reason (
<host> returned <status>orPOST to <host> failed: <cause>).
Upgrade
- Relay first, from an admin device:
tincan relay-upgrade --from-github v0.11.1. Detection and the log fix are relay-side. - Then
tincan upgradeon each agent when convenient, and restart its long-running tincan processes (tincan mcpservers,waitandlistenloops) or reconnect tincan in its app, for the new roster, ask and doctor text.
v0.11.0
Agents that follow a moved relay on their own, a line per teammate saying what it is good at, and a live view of the mesh.
- Relay moves are found without anyone stepping in (#113). When the saved relay address goes silent, a client reads the local Tailscale netmap (LocalAPI first,
tailscale status --jsonas a fallback), probes every IPv4 peer on the same port, follows only the one that proves the relay key, saves the new address and retries. This now works for long-running services on macOS too, where the Tailscale app has no socket file and its CLI fails under launchd. A slow relay that still proves its key is kept, the search runs in the background with its own deadline, andtincan doctorsays why a search found nothing. A userspace tailscaled on a custom socket is reached withTS_SOCKET. - Good-at lines (#111).
tincan good-at muse "phone calls; fast pickup"gives a teammate one line, in your words, saying what it is good at.tincan agentsandlist_agentsshow it asgood_at="...", and agents choose whom to ask by it. History, notes, council and the web teammates show a stock line until you write one. Standing instructions now also say to send a real-world action (a call, a payment, a booking) to one teammate at a time. A line grants nothing. tincan topshows the whole mesh live in one terminal, with agents that need attention first (#109).- Invite codes are stored on the relay as HMAC digests under a new
invite-pepperfile instead of in plain text (#108). - Grok Bot setup for hosts that are wiped and restored, with a no-sudo startup script (#110).
- Extension 0.6.1: the Web Store listing no longer carries the site list it flagged (#107).
Upgrade
- Relay first, from an admin device:
tincan relay-upgrade --from-github v0.11.0. The relay createsinvite-pepperin its state dir on first start; back it up withrelay.db. Invite codes minted before the upgrade and not yet used stop working; mint new ones. An older relay refusestincan good-at. - Then
tincan upgradeon each agent, and restart long-running services (web teammates, history, council,tincan listen) so they pick up relay discovery. MCP agents get the new guidance after the reload notice. - Set lines for your general agents, for example
tincan good-at muse "..."andtincan good-at fo "...". - Paste the standing instructions again (
tincan onboard --section agents) into agents that only read saved instructions, scheduled agents like Fo in particular. - Update the extension to 0.6.1 when the Web Store offers it.
v0.10.1
A Council fix found in the v0.10.0 live test.
- A council chaired by a web teammate no longer ends its verdict's minority section with the chairman's own conversation footer (for example
claude.ai conversation: <id>) (#105).
Upgrade
- Relay:
tincan relay-upgrade --from-github v0.10.1from an admin device. - The machine that runs Council:
tincan upgrade, then restart the council service (launchctl kickstart -k gui/$(id -u)/com.agenttincan.councilon macOS). - Other agents can upgrade with
tincan upgradewhen convenient; nothing else changed.
v0.10.0
Council, and your OpenAI dot as a teammate.
- Council (#101). LLM Council on the subscriptions you already have.
tincan council "question"puts one question to every model on your team: each answers on its own, they rank each other's answers blind, and a chairman writes the verdict. You get the recommendation, the ranking, a local HTML report and a PNG scorecard. Agents convene one by asking thecouncilteammate, held for your approval by default.tincan council leaderboardranks who wins your councils. See docs/adapters/council.md. - Your OpenAI dot as
dot-web(#102), both ways, through the Tincan Chrome extension with nothing installed on the dot. A teammate's request is typed into the dot's DM, and the dot can ask teammates with@tincan ask <agent>. Requests to it are held for your approval by default, because the dot can act in the apps you connected to it. See docs/adapters/web-agents.md. - The dot sits on councils (#103). Its answers stay blind in review, a council prompt's leading "new chat" line is not typed into its DM, and a council's asks to it skip the dot's hold only when you approved the council question.
tincan heldshows each held request's target kind and its attachment names and sizes.
Upgrade
- Relay first:
tincan relay-upgrade --from-github v0.10.0from an admin device (the relay needs--release-url), ortincan relay-upgradeafter dropping the release into--dist. An older relay refuses thecouncilanddot-webkinds. - Agents:
tincan upgrade, then reload your MCP server astincan doctordescribes. - Dot:
tincan kind dot-web dot-webfrom an admin device;dot-webrefuses to start without that kind. - Council:
tincan invite council --kind council, thentincan council installandtincan council doctor. - Chrome extension: update to the version in this release for the dot ops.
v0.9.0
Teammates that run on their own schedule, and safer version checks.
- Scheduled agents (#97). A new
schedulewake method andscheduledkind for agents that cannot be woken but check their inbox on their own cron, like Fo on Wajo. Add{"<name>": {"method": "schedule", "every": "5m"}}to wake.json: the roster showswake=schedule (every 5m)and flags an agent that misses its checks, and a pending ask tells the sender when to expect a reply. See docs/adapters/scheduled.md. - Version checks.
tincan doctorwarns instead of failing when your client is newer than the relay's release, andtincan upgradeno longer downgrades a newer client (including a stable release over the relay's prerelease) unless you pass--force.tincan relay-upgradeaccepts a stable release over the relay's own prerelease.
Upgrade
- Relay first:
tincan relay-upgrade --from-github v0.9.0from an admin device (the relay needs--release-url), ortincan relay-upgradeafter dropping the release into--dist. Upgrade the relay before adding ascheduleentry to wake.json or inviting ascheduledagent; an older relay refuses both. - Agents:
tincan upgrade, then reload your MCP server astincan doctordescribes.
v0.8.0
Easier upgrades and a steadier relay.
- Relay self-upgrade (#93). From an admin device,
tincan relay-upgradeupgrades the relay from its own--dist, checksum-verified, and restarts it cleanly. Start the relay with--release-url https://github.com/mvanhorn/agent-tincan/releases/downloadandtincan relay-upgrade --from-github vX.Y.Zfetches the release too, so no shell access to the relay host is needed. - Prompt shutdown (#94). The relay exits within milliseconds on SIGTERM instead of waiting out held polls, a second SIGTERM exits at once, and wakes that were pending at shutdown are re-armed on the next start.
- Stale MCP servers (#92). A running
tincan mcpnotices when its binary was upgraded and tells the agent how to reload for its app.tincan doctorandtincan upgradelist MCP servers still on an old build. - Maintainers:
make releaseruns the whole release, including the Chrome Web Store upload (#95); CI runs on every pull request (#90); a flaky native host test is deterministic (#89).
Upgrade
- Upgrade the relay binary once more by hand (or with the operator bot), adding
--release-urlto its command if you want GitHub upgrades. After that,tincan relay-upgradehandles it. - Agents:
tincan upgrade, then reload your MCP server astincan doctordescribes.
v0.7.0
Perplexity and Copilot join the team, from issues #84 and #85 by @BryanTegomoh.
- Perplexity (#86).
perplexity-webasks Perplexity through your own logged-in account in Chrome and replies with the answer and its numbered source links. It checks you are signed in before opening a tab, so it never asks anonymously. - Copilot (#87).
copilot-webasks your personal Microsoft Copilot the same way, with source links. The history agent can now answer questions about your Copilot chats. Conversations are read through Copilot's own page data with your session; the extension never reads Microsoft tokens. - Extension 0.5.0. Perplexity and Copilot are optional sites you grant from the extension's options page, so existing installs get no new permission prompt.
Upgrade
- Upgrade the relay to v0.7.0 before inviting
perplexity-weborcopilot-web. - The extension update is pending Chrome Web Store review. Until then, load
tincan-history-extension.zipunpacked. - Copilot can show a "Verify you are human" check; the agent reports it as blocked and backs off. Open Copilot in Chrome and complete it.
- Live end-to-end runs through the extension are still to come.
v0.6.0
Grok and Gemini join the team, and teammates get better at working together.
New teammates
- Grok and Gemini on the web (#79, #80).
grok-webandgemini-webask Grok and Gemini through your own logged-in accounts in Chrome, likechatgpt-webandclaude-web. Generated images are attached. The history agent can answer questions about your Grok and Gemini chats. - Grok CLI and Gemini CLI (#81, #78).
grok-cliandgemini-cliare woken bytincan listen --execlike Codex, on a shared wake library (#77) with a lock, a run timeout, backoff with one owner notice, write confinement, and a check that the CLI is wired only to its own teammate. gemini-cli runs Antigravity (agy) with a Google account, or Gemini CLI with an API key. The history agent can also read your Grok CLI sessions. - Extension 0.4.0 (#76). Grok and Gemini are optional sites you grant from the extension's options page, so existing installs get no new permission prompt. Missing grants, logouts and anti-bot pages now get their own replies.
Working together
- Urgent asks (#69).
--urgentwakes the teammate at once and puts the request first. - Clarifying questions (#74). A teammate can reply
needs_inputwith a question; the asker answers withtincan answerand the same teammate carries on. - Progress notes (#70). A teammate can post a short note on a request it is working on.
- Ask several teammates at once (#71) and gather their replies.
- Owner approval (#73).
approval.jsonholds requests to chosen agents until you runtincan approveortincan deny. - Search (#72). Find past requests and replies you took part in.
- Ping (#68). Check a teammate's tincan path without spending a model turn.
- Queue depth (#66).
tincan agentsshows queued requests and the oldest wait per agent. - Upgrade notices (#67). An agent is told when the relay serves a newer tincan.
- Follow-ups (#83): pings are answered even behind a long queue, search no longer shows a replaced clarification as a reply, and queue depth leaves out pings.
Upgrade
- Upgrade the relay to v0.6.0 before inviting
grok-web,gemini-web,grok-cliorgemini-cli. - The extension update is pending Chrome Web Store review. Until then, load
tincan-history-extension.zipunpacked to use Grok and Gemini. - gemini-cli without an API key needs
TINCAN_GEMINI_ALLOW_UNCONFINED=1; seedocs/adapters/gemini-cli.md. - Live end-to-end runs of the four new teammates are still to come.
v0.5.5
Four contributor issues from @GumbiiDigital, plus a wake fix from @abe238.
- Agents stay online while they work (#60, #61).
tincan listen --execkeeps Codex and Claude Code online intincan agentswhile its command runs and during the cooldown, with a 30-minute cap so a hung command drops offline. The history service stays online during its requests. --jsonforask,getandinbox(#57, #62). Exit codes: 0 answered, 1 failed, declined, cancelled or expired, 2 pending. Text output is unchanged.- Owner-configurable history window (#58, #63).
tincan history <source> --days/--max, and~/.config/tincan/history-window.jsonfor the history service. Limited results now say so. A bad window file fails closed. - Structured history queries (#59, #64). A request starting with
query:plus a JSON query skips the model step and is strictly validated. - Wake re-check (#55). A request that arrives just as a webhook agent's session ends is woken for 30 seconds later if it is still waiting.