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

Changelog

Notable changes, newest first. Versions follow semantic versioning. Before 1.0, anything can still change.

0.12.0 — 2026-10-17

Added

  • Plans. ⌘, → Plan shows the trial (everything, 14 days from first start), no plan, or the plan a licence from elyracode.com/huskarl gives, and takes the licence key. Without a plan the bots work in rehearsal on runs you start and routines do not run by themselves; Solo lets three bots act; Teams, GitHub, Elyra Workspace, Félagi, Chief, the phone and Siri are Pro. Approval, undo and the audit log are the same on every plan. huskarld plan, activate and release-mac do the same from the terminal.

0.11.0 — 2026-10-17

Changed

  • Huskarl is proprietary. The crates said MIT; they now point to LICENSE and a draft licence agreement (EULA.md). The app carries the agreement and the third-party notices (scripts/licenses.py), and cargo deny check licenses keeps copyleft out of the build.

0.10.0 — 2026-10-17

Added

  • Speaking instead of typing. A microphone beside the send button turns what you say into text in the chat box, in the app's language (Norwegian or English), recognised on the Mac only; the sound never leaves it. Nothing is sent until you press Enter, and nothing is approved by voice.

0.9.2 — 2026-10-17

Fixed

  • Saving a bot's settings no longer shows "exited with signal: 9". An idle agent is restarted so it gets the new settings; its stopping was reported as if it had crashed. An agent that stops on its own is still reported.

0.9.1 — 2026-10-17

Fixed

  • A Félagi token with write was taken for a read token. Félagi's /me answers without the data envelope the other endpoints use, so the token's abilities were not found and connecting always failed.

0.9.0 — 2026-10-17

Added

  • Your own Félagi tasks. With a personal Félagi token (pasted as Félagi hands it back), a bot sees the issues assigned to you, overdue and due soon first, the hours you logged, and proposes comments, statuses and hours, each after you approve it. Dev Desk reminds you of what is due every morning, and at 15:30 says what you have logged today and asks what to log.

0.8.0 — 2026-10-17

Added

  • Elyra Workspace. A bot connected to it hands coding tasks to agents there: it proposes the task word for word, you approve it, Workspace starts a thread in a worktree of its own, and the bot's thread is told when it is done, with the agent's last reply. Connected with a client paired in Workspace, pasted as it is copied. Dev Desk uses it for small, understood bugs.
  • huskarl://queue opens the window on the proposals that wait, from a link, a shortcut or eterm.

0.7.1 — 2026-10-17

Fixed

  • A refused agent login says so. When Anthropic or another provider refuses Huskarl's login (revoked or expired), the thread says how to sign in again, and the agent shows as not signed in, with Connect offered, until you have or a run goes through.
  • Elyra finds node also when the daemon is started at login and your version manager (Grove, nvm, Volta) puts it on PATH only in ~/.zshrc. Before, the bot stopped with "env: node: No such file or directory".

0.7.0 — 2026-10-17

Added

  • GitHub. A connection with a fine-grained token you make for the bot, tried before it is kept in the Keychain: a bot reads issues, pull requests, commits and releases, and proposes comments, labels, closing, new issues and draft releases. Nothing merges, pushes, deletes or publishes.
  • Dev Desk, a recipe that comes with Huskarl: triages new issues, sums up pull requests that wait for review, and drafts release notes, every weekday morning.

0.6.0 — 2026-10-17

Added

  • Apple Intelligence. Where it is on, Apple's model on the Mac suggests bots (free, nothing leaves the Mac) and puts long answers in a line or two in notifications. ⌘, → General turns it off.
  • Siri. Two shortcuts that come with the app, "What's waiting in Huskarl" and "Ask Huskarl", added under ⌘, → General; huskarld status and huskarld ask behind them.
  • What is confidential. Senders, domains and words in the subject can be marked confidential for a bot: a run that has read such mail sends nothing outside your domain unasked, whatever its rules say, and the card says why.
  • A preview before rules are loosened. Saving a bot's rules first puts its last 30 days through them, and shows what would have gone without asking: to new addresses, and what you rejected then.
  • Check digits. The card points out a Norwegian account number that fails MOD11, an IBAN that fails MOD97, and a KID that fails both MOD10 and MOD11.
  • huskarld check also reads the calendar for the next seven days, and lists the chats when a bot has Teams, so a new permission can be tried without changing anything.

0.5.0 — 2026-10-16

Added

  • Attachments. Bots read a mail's attachments: a PDF as its text (a scan as a picture of its first page), pictures as pictures, text files as text. An invoice PDF's account numbers count for the changed-account warning, and a PDF in a watched folder is read as text too.
  • Microsoft Teams. A connection of its own (Chat.ReadWrite, its own Keychain entry): a bot lists and reads its chats, and writes in one as a proposal.
  • Updates in the app. Huskarl looks for a newer version at start; About Huskarl installs it after checking its checksum, signature, Developer ID team and notarization, and restarts.
  • A welcome on the first start: which agents are ready, the recipes to begin with, and how to try a bot safely.
  • Showing the bot how. Show the bot how in the browser panel writes down what you open, click and type (never what goes in a password, code or card field, nor an address's query), and gives the bot the steps when you give back, to do the same way or as a routine.
  • Recipes that come with Huskarl: Inbox Manager, Expense Manager and Meeting Briefs, on the new-bot page. documents_save can add to a CSV, Markdown or text file, for one line per receipt.
  • Writing to the bots from the phone. With phone notifications on, an ntfy message to the reply topic, "Inbox Manager: what is waiting?", goes to that bot, and its answer comes back as a notification. Off until you turn it on.
  • Routines at night. ⌘, → General can keep a plugged-in Mac from falling asleep by itself (caffeinate -s), so routines run while no one is at it.
  • Stop and delete. A running bot has Stop in the thread's top bar, and Delete bot… in its settings puts it away (stopped, routines paused, mail disconnected); its thread and audit trail are kept.
  • Booking meetings. calendar_book puts a meeting in the calendar. With attendees it waits for approval like mail, and the card shows what it overlaps. Outlook now asks for Calendars.ReadWrite and Google for calendar.events: connect again to use it.
  • Documents. A bot saves reports, letters and sheets in ~/Huskarl/<its name>/: text and Markdown as written, Word, RTF and OpenDocument from Markdown, Excel from CSV. A file is never written over.
  • A bot's own address. Give a bot an address such as you+expenses@company.com and it sees and handles only mail sent there; forward a receipt to it, and only that bot gets it.

Fixed

  • The count in the menu bar follows the proposals also while the window is closed.
  • A bot whose proposals wait for you shows as waiting until the last is decided.

0.4.0 — 2026-10-16

Added

  • Earned rules. When ten or more of a bot's mails to one domain, or of one class such as archiving, have been approved unchanged in 60 days with none rejected or edited, Huskarl suggests letting such go without asking, logged: once in the thread, and under Earned in the bot's settings. Money and deleting are never suggested.
  • Undo, and send later. An approved mail, payment or deletion waits 30 seconds before it goes, with Undo on the card (huskarld undo <id> in the terminal). Later… sends it in an hour, tomorrow at 08:00 or Monday at 08:00 instead. What domain rules let through waits too, and a scheduled action survives a restart. HUSKARL_UNDO_SECONDS sets the window.
  • Why? on every approval card: what started the run, what you wrote, the calls the bot made before proposing (from the audit log), what it said, and the rule that decides. huskarld why <id> in the terminal.
  • A task reaches no further than the bot that gave it. A task from Chief is decided by the strictest of the recipient's rules, Chief's rules and what Chief let it do (may: look, draft, or as far as it may go itself; only_to one domain; max_tokens). What falls outside waits for you.
  • Rehearsal. A bot in rehearsal reads for real and only writes down the rest; after each run the thread lists what it would have done. For trying a new bot or routine on the real inbox. huskarld rehearsal <bot> on|off.
  • Replay. A finished run done again, with the bot's current settings or with other instructions or another model (huskarld replay), against what the run read and as a rehearsal. The thread then shows what is the same, changed, only then and only now: regression tests for a bot, on real work.
  • The calendar. A bot reads the calendar of the Outlook or Gmail account it is connected to (calendar_list), and a routine can run a set time before each meeting, with that meeting: "a brief 15 minutes before". Connections made before this need connecting again to read the calendar.
  • Folders as a way in. A routine can watch ~/Huskarl/<folder>: drop a receipt there and the bot gets it, with tools to read it (pictures and PDFs as a picture) and move it to Done/. With a shortcut, the share sheet sends files there too.
  • A changed account number is pointed out. When a proposal has an account number from a supplier's mail, and that supplier's mail gave another one before, the card says so: the shape of invoice fraud.
  • Learning from your edits. When three of your last edits agree (an opening you change, a line you remove or add), the thread asks Remember this? with the memory it would be. Only your click keeps it.
  • Recipes. Export a bot to share (role, instructions, rules, routines; never memories, logins or webhook keys) and import one: Huskarl first lists what it asks for beyond the defaults, and the new bot starts in rehearsal.

0.3.0 — 2026-10-16

Added

  • The approval card points out what to look at twice: an address, a link or an account number that came from a mail or a page the bot read rather than from you; a first recipient; a domain a letter or two from one you use. The warnings follow the notification to the phone.
  • What a bot proposed is kept when you edit it before approving.
  • The account's name at the foot of the sidebar.

Fixed

  • More browser buttons that end or pay for something wait for approval as such: «Lever», «Fullfør», «Si opp», «Avbestill», «Kanseller», «Tøm» and their English counterparts. On a page with a card field or an amount, «Bekreft» is a payment.
  • Theme cards in a row are as tall as each other, and the thread's header no longer runs over the browser panel.

0.2.0 — 2026-10-16

Added

  • English as the default language, Norwegian selectable in ⌘,.
  • Documentation in English.

0.1.0 — 2026-10-16

The first version. It is signed by Knut Horne (52AT44QFCM) and notarized, for Apple Silicon and macOS 13 or later only.

The bots

  • AI colleagues with their own roles. Each bot has a name, a role, instructions, its own thread, its own agent and model, and its own rules. Suggest drafts a bot from a description in your own words.
  • Three agents: Elyra, Claude Code and Grok Build. Common to all three:
    • The gateway tools are the only ones that work. The agent runs in a sandbox behind an egress proxy that lets only the traffic to the model through.
    • Claude Code and Grok Build have their own logins for Huskarl.
    • The Grok models can also be used through Elyra.
  • Nothing is sent without approval.
    • Every action has a class: read, draft, change internally, send, money, delete/publish. Money and delete/publish always require approval.
    • Proposals arrive as cards in the thread and in a shared approval queue (⌘⇧A), and they can be approved from your phone.
    • An approved action is carried out at most once.
  • Outside text is not instructions. Mail, web pages and other bots' replies are marked and wrapped. Memories written after such text are held back until you accept them.
  • Memory, budgets and audit. The bots have memories you can see and correct. Each run has a token budget and each bot a daily budget. The audit log is hash-chained (huskarld verify-audit).

What the bots can use

  • Mail: Outlook / Microsoft 365 and Gmail, with the login in the Keychain, and Testpost as a practice mailbox.
  • Their own browser: the bot can open only the sites it is allowed to. You can watch while it works, step in with Take over, and log in yourself without the bot seeing the password.
  • Routines: at fixed times, when new mail has arrived, when another bot is done, or when a local webhook is called.
  • Chief: a bot that gives the others tasks and gets the answers back.
  • Félagi: the bots take issues from a Félagi workspace (protocol 4). Approvals happen in Huskarl, and Félagi only learns what is waiting.

The app

  • Search: a search field in the bot list (⌘F) with full-text search across all threads.
  • Statistics per agent and model in Settings (⌘,).
  • Appearance: themes, fonts and size.
  • Menu bar icon that shows how many proposals are waiting.
  • The daemon as a login item: the installed app makes the daemon a login item, so the bots keep working when the window is closed. The developer agent from scripts/install-launch-agent.sh is removed on first launch.

Not yet

  • No built-in updates. latest.json is produced, but the app does not ask for it yet.
  • Codex as an agent.
  • Chrome for Testing is not bundled. The browser is your own Chrome, with a separate profile per bot.