Skip to main content

Taskuary

English · 简体中文

CI OpenSSF Scorecard PyPI Python 3.10+ License: MIT Stars

⭐ Please star Taskuary if you find it helpful — it is how other people find it.

Your inbox, staffed by AI agents

Taskuary turns incoming messages into organized work. It sorts what matters, hands tasks to your agents, and brings decisions back to you. Nothing sends or ships without your approval.

The Taskuary Studio assembling as work arrives and AI agents take their seats.

Taskuary is early—currently v0.3.7.4—so breaking changes are still possible before 1.0.

Try Taskuary now, in your browser

The real app with invented data. Nothing connects, sends, or runs.

Read the documentation — installation, the first run, what to connect, and every setting.

What Taskuary can do

One request, from arrival to your approval. Follow Ruth's request for the latest vendor spend numbers through the real app, using fictional demo data.

1. Everything lands in one place

Mail, chats, issue trackers, alerts, and reports arrive on one rail, sorted by what they need: Urgent, On you, For later, the Advisor's ideas, and FYI. Beside it, the Assistant says what came in and who is waiting, so you never open each system in turn.

The work rail sorting today's items into Urgent, On you, Advisor ideas, and FYI, beside the Assistant's morning summary of who is waiting.

2. Let the Assistant walk you through it

Choose Walk me through my tasks. The Assistant puts one item on the table at a time, as the same task card you would open yourself, with the next actions under it: Next, Write reply, Start an agent. The buttons always do the same thing; the chat line is for everything else, and the Assistant already has the message, the thread, and your past decisions to answer from.

The Assistant bringing Ruth's request into the chat as task TQ-0018, with Next, Write reply, and Start an agent under it.

3. Every request becomes a task with its whole story

Open any item to see how it got here: the message, what triage decided and why, which agent has it, and where the reply stands.

Ruth's request on its task: the message, the triage decision, the agent, and the reply still to write.

4. The agent works inside the chat

Start an agent and it works in the same card. Here the analyst prepares the numbers, checks that the categories add up, names its source, and drafts the reply. Nothing is sent.

The analyst's finished vendor spend analysis inside the chat, with category totals, the change from July, and its source.

5. The last word is yours

The prepared reply waits on the task, beside the request that started it. Read it, edit it, and choose Approve & send when it is ready.

The drafted reply to Ruth waiting on its task, with Approve & send, Reject, and Regenerate with AI.

6. Start your day before it gets busy

Each morning the Assistant opens with today's meetings on a timeline and who needs a word from you. Ruth's request has a clear deadline: the 11:30 operations review.

An animated close-up of the morning: today's meetings on a timeline, then the people and agents waiting.

Key features

Use your coding CLI

Connect Claude Code, Codex, Qwen Code, OpenCode, Kimi Code, Gemini, Cursor, Copilot, Muse Code, or another CLI. Set up the connection once, then give your agents profiles with their own instructions. Follow their sessions, answer questions, and review the result from Taskuary.

For Qwen Code, see the setup and compatibility guide. Use DeepSeek, GLM, or MiniMax through OpenCode, or connect Moonshot's Kimi Code: setup steps and supported roles.

AI CLI connections for Claude, Qwen, OpenCode with DeepSeek, and Kimi Code.

A shared Hub for what agents learn

Keep discoveries, decisions, and useful warnings by topic. Agents can find what earlier work uncovered, discuss it, and correct it instead of starting from scratch.

The Hub's topics and shared discoveries, including an expanded discussion between agents.

Agents leave notes for each other

The Board's Live handoffs show what agents are working on, what is blocked, and what is ready. An agent leaves a note; the next one reads it before picking up the work.

Live handoff notes on the agent wall, showing progress, shared context, and who has read each note.

Memory that learns how you work

Every draft you edit and task you reclassify gives Taskuary evidence about your preferences. Repeated patterns become lessons in LEARNED.md: how you write, what you own, and what deserves a task. For example, repeatedly moving the numbers to the top of a reply can teach it to lead with the total next time.

Open Docs → LEARNED.md to read, edit, or delete those lessons. Your written instructions in SOUL.md take precedence.

LEARNED.md open in the document editor, with evidence-backed preferences, hypotheses still being tested, and proposed rules awaiting the owner.

Technical details: how LEARNED.md becomes memory
  • Learn from a correction. A model call turns an explicit correction into a hypothesis. Batched reflection compares multiple decisions; untouched approvals contribute here.
  • Keep the evidence. Each machine-written lesson carries s (strength), ev (evidence IDs), and seen (last supporting date). A stable k identifies it across rewrites.
  • Promote supported patterns. A new hypothesis starts at strength 2. Reflection is instructed to promote it at 4 or more, with at least three episodes across two people or threads. Contradictions weaken it; stale hypotheses also decay across reflection cycles.
  • Use active lessons. The prompt builder excludes the Hypotheses, Proposed rules, and raw Verdicts sections. Active lessons inform triage, drafts, and agent context.
  • Keep the owner in charge. Inferred rules that hide or file work wait in Proposed rules. Two matching explicit owner verdicts can already supply that authorization. Untagged lines you write are preserved, and learning can be disabled in Settings.

See Learning from your decisions, or the implementation in learn.py and learnedgraph.py.

What leaves your machine

Task context passes through a credential check before reaching the chosen AI provider or CLI. Original mail stays unchanged.

Taskuary runs locally. With a hosted AI provider or coding CLI, the prompt contains the context needed to do the work you asked for. Use a model running on your machine, and those AI prompts stay local too.

Credentials are taken out of that prompt first. If a colleague mails an API key, a connection string, or a private key, it is replaced with a labelled placeholder ([redacted:aws-key]) at each of the three doors a prompt can leave by: the hosted models, a headless CLI run, and the first prompt of an agent pane. Your mail itself is never altered—the scrub is on the way out, not on the way in—so a vendor's one-time code stays readable where it arrived. Nothing Taskuary sends carries a placeholder either: a reply still holding one is refused, not delivered.

The rules are deterministic rather than a model's judgement, because by the time a model could judge, the credential would already be in a prompt. So they catch credentials with a recognizable shape—provider keys, tokens, credentialed URLs, connection strings, private keys—and they will not catch a sentence like "the wifi password is bluefish17". Report anything you find through SECURITY.md.

Install

Windows app

Download the latest single-file Taskuary.exe and open it. No Python or installer is required.

Python

Python 3.10 or newer works on Windows, macOS, and Linux:

pip install taskuary
taskuary

Taskuary opens at http://127.0.0.1:7787. For a native desktop window instead, install pip install "taskuary[desktop]" and run taskuary-desktop.

Docker

git clone https://github.com/ldbumble/taskuary
cd taskuary
docker compose up

Then open http://127.0.0.1:7787. Docker runs the web app; coding CLIs and the optional WhatsApp bridge remain on the host.

On first run, connect an AI provider or local Ollama model, add at least one inbound channel, then choose the coding CLI that should receive tasks. The setup wizards test each connection before it goes live.

Try it without installing anything

taskuary --demo                    # or: docker compose --profile demo up

The demo is the real interface with fictional work and scripted replies. It cannot connect to outside systems, send messages, run tools, or start agents. Its changes reset when you reload.

Installs

Daily installs of taskuary from PyPI, mirror traffic excluded

Updated daily from PyPI with mirror traffic excluded. The raw series is downloads.csv on the stats branch.

Documentation

The documentation is at taskuary.com/docs.

Taskuary is free and open source under the MIT License. Issues and pull requests are welcome; security reports belong in SECURITY.md.

Metadata

Release files for taskuary 0.3.7.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for taskuary 0.3.7.4
File Size Uploaded
taskuary-0.3.7.4.tar.gz 5.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for taskuary 0.3.7.4
File Interpreter ABI Platform
taskuary-0.3.7.4-py3-none-any.whl Python 3 none any Details

Total release size: 10.7 MB

Release files / taskuary-0.3.7.4.tar.gz

Download URL taskuary-0.3.7.4.tar.gz
Size 5.8 MB
Tags Source
SHA-256 checksum
How to use checksums
6c5b4ef76ce729e0da133cd666c6ac45310b4b0bf04c78a8bb60a6a0fb69de28
BLAKE2b-256 checksum
How to use checksums
c7ebe2fd1d5e2272056298b098f71843416f1d91be87d9387dea462efc73ba2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / taskuary-0.3.7.4-py3-none-any.whl

Download URL taskuary-0.3.7.4-py3-none-any.whl
Size 4.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
25b7003739f7b2e451640988832b28ac0aaf5d00a048bfff9b83b2da7c2cf569
BLAKE2b-256 checksum
How to use checksums
104e3fc0c50945afcc28ecd4b3dd477f51dbcdfdb02d031913fa5e9bd811c0fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.7.4 This release

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page