Changelog

Changes to the macOS app, newest first. Windows and iOS entries will start when those apps ship.

In development

Not part of the macOS app yet.

  • Push notifications for permission requests on iPhone, with Approve and Deny. smaltid encrypts each request to a key the phone made, and a small relay at push.smalti.dev passes it to Apple without being able to read it. This replaces the optional ntfy notifications.
  • Fleet: smaltid machines pair once and then answer for each other. The Mac app shows a Machines section, and other machines' permission requests appear in its Needs you list, approved or denied through the paired machine.
  • smaltid can move a stopped session to another machine, with its branch, commit and transcript, and resume it there.
  • smaltid, a per-machine service: session index (Claude Code and Codex), attention from Claude Code hooks, approve and deny of permission requests over its API or from a phone notification, the governor, and a decision API. Installs as a launchd agent or systemd user unit.
  • smalti-conductor, a command line prototype of the Conductor: policy, action log, missions, workers in worktrees, checks before done, and an agent library with lessons.
  • "While you were away": when you come back to the factory overview after ten minutes or more, a short briefing lists what changed, needs-you items first: questions, stuck or finished tasks, checks that flipped, proposed lessons, machine events and commits.
  • The Conductor's web view: the factory overview and each mission, with its plan, task cards, activity and questions, sized for a desk or a phone.
  • iPhone and iPad app over SSH and tmux: inbox first, approve and deny with smaltid, notifications with actions, widgets and a Live Activity, the Conductor's Factory view, and Shortcuts.
  • Windows app (WPF): the same panels, inbox, governor asks, sounds and keymap as the Mac, with smaltid for Windows (freeze and resume by suspending threads) packaged alongside it.

Unreleased

Conductor

  • Mission panel: shows the Conductor's web view when smalti-conductor serve is running, with a badge for open questions, and offers to start it when it is not.
  • Conductor bar (⌘I): one line to send the Conductor a message, then focus the Mission panel.
  • smalti://session/<id> links focus that session's panel or resume it.

Terminals

  • Detachable terminals (off by default): with smaltid running, agents run in terminals that survive quitting Smalti, and panels reattach with their scrollback.

Sounds

  • Four short cues: a new panel, a magnet snap, a session that needs you while Smalti is in the background, and a Conductor task passing its check. Sounds On or Off in the palette; silent when macOS interface sounds are off.

Governor

  • When smaltid is running, the governor and the inbox come from it, so every app sees the same queue; without it the app falls back to its own.

Decision timeline

  • New Show Decisions panel: every goal, redirect, interrupt, approval and answer in a project's sessions on a timeline, with the files and commits that followed. Reads from smaltid when it is running, otherwise from the transcripts.

Look

  • Each project's region of the canvas is labelled.
  • The Smalti mark appears on the empty canvas and in About; the app has its icon.

Attention

  • Needs you list in the sidebar: sessions waiting on an answer, finished sessions and failed CI runs, with coloured rings on their panels. ⌘J jumps to the next one.

Resource governor

  • Memory and CPU badge on every terminal panel, measured over its whole process tree.
  • New Claude launches are held under memory or thermal pressure, or above 10 running agents, and released one at a time.
  • At critical memory pressure, the largest non-agent subtree over 2 GiB is paused, with Resume and Kill buttons.
  • Background agents run at low priority while the microphone or camera is in use.

CI

  • CI panel showing Commitwell runs and jobs through the cw command line tool.

Keyboard

  • Command palette (⌘K) over commands, panels, sessions, files and SSH hosts.
  • Directional focus and movement with ⌥⌘ and the arrows or h j k l, numbered panels, Navigate Mode, saved Places, and a shortcut overlay (⌘/).
  • One command registry drives the menus, the palette, the overlay and docs/keymap.md.

Packaging

  • scripts/bundle.sh builds a zipped, ad hoc signed Smalti.app.

Canvas

  • Panels snap to the edges of nearby panels while moving or resizing, flush or one grid step apart, with dashed guides.
  • Shift-click and shift-drag select several panels, which then move and resize together.
  • Auto arrange packs panels into rows.
  • The middle mouse button pans the canvas from anywhere, including over a panel.

Graph

  • The middle mouse button pans the graph.

Sidebar

  • Pinned project headers in the session list are opaque, so rows no longer show through them while scrolling.

First version

  • Infinite canvas with terminal, browser, note and graph panels.
  • Sidebar with a file tree and a session list built from ~/.claude/projects.
  • Terminals detect a running claude and link to its session.
  • Force graph of projects, sessions and the files they touched, as a panel or full window.