Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Huskarl AI colleagues on your own Mac Starf An activity monitor for Apple silicon that never invents a number etrans An SSH and SFTP client for macOS Elyra VM Virtual machines for macOS, Linux and Windows on your Mac Litr A small, native web browser for macOS Notr A notebook for macOS e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Refr Local-first PDF workspace for macOS Elyra Workspace A desktop workspace for coding agents Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Release notes
Changelog
Elyra

Chief

A Chief is a bot that can give the other bots tasks. You ask Chief for something, Chief hands it out, and the answers come back to Chief.

Turning it on

The bot's settings → Can give tasks to other bots (Chief) → On, and Save. The bot then gets two tools:

Tool Class What
team_list Read the other bots: name, role, and whether they are busy (busy) or free (free)
team_ask Change internally give another bot a task, with the name as team_list shows it

Bots without Chief turned on do not have the tools.

How a task goes

  1. Chief calls team_ask. Chief's thread says "📨 Gave Inbox Manager a task: …", and the recipient's says "📨 Task from Chief: …".
  2. The task is queued (delegations) and started when the recipient is free. The scheduler looks for free bots every 20 seconds, and at once when a task is given or another one finishes.
  3. The recipient does the task as its own work, under its own policy and its own approvals, and never further than Chief may go itself (see How far a task reaches). If it sends mail, that becomes a proposal in the recipient's thread, as usual.
  4. When the run is done, the recipient's last answer goes back to Chief. Chief's thread gets "📬 Reply from Inbox Manager", and Chief gets the answer as a new message.
  5. If the recipient fails, or does not get started (the daily budget, an agent that does not start), it says "📭 Inbox Manager could not do the task: …", and Chief is told.

Chief should not wait for the answer. It comes as a message when it is ready.

How far a task reaches

A task is decided by the strictest of three:

  • The recipient's own rules, as for its own work.
  • Chief's rules. No bot hands on more than it may do itself. If the recipient may mail firma.no without asking but Chief may not, a mail to firma.no on a task waits for you.
  • What Chief let the task do, may in team_ask:
    • look: only read. Anything else, even a draft or archiving, waits for you.
    • draft: read and write drafts. Archiving and anything more wait.
    • own (the default): as far as Chief may go itself.
  • One domain, only_to in team_ask (firma.no, or *.firma.no with subdomains): mail on the task to anyone else waits for you, even where both bots' rules would let it go.
  • Tokens, max_tokens in team_ask: the task's run is stopped when it has used that many, or its own run budget if that is lower. Tokens rather than money, as for the run budget: every agent reports them during the run, while some report the cost only at the end.

The recipient is told: "You were given it only to look: read what you need; anything else you do waits for the user." What waits shows up as an ordinary card in the recipient's thread, and Why? on it says which limit made it wait: "Chief gave the task only to look, so anything more waits for you.", or "Chief gave the task to mail only firma.no, so mail to anyone else waits for you."

Limits

  • No chains. A bot working on a task it has been given cannot pass it on: "This is a task another bot gave you: do it yourself, it cannot be passed on." Tasks therefore cannot go in a circle. This is refused before any rule is asked, so it never becomes a card either.
  • At most 10 tasks out at a time per Chief. The eleventh is refused until some answers have come in.
  • Not itself. team_ask only finds other bots.
  • Outside text. What Chief writes is outside text for the recipient, and the recipient's answer is outside text for Chief. Memories written after that are held back until you accept them (see Memory).
  • Daily budget. Tasks and answers back are runs you did not start yourself, so the daily budget stops them. See Approvals and rules.
  • Restart. The queue lives in the database. Tasks that were running when the daemon stopped are put back in the queue and started again.

team_ask is Change internally, so it happens at once and is logged. If you set Change internally to Needs approval for Chief, every task becomes a proposal, "Give a task", with the task as text.

Not yet

  • Seeing the queue of tasks in the app. You see them as lines in the threads.
  • Groups or shared threads.