Skip to content

Releases: fachrihawari/omaterm

omaterm 0.10.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 06:12
d254c32

Agents on branches of their own, and agents that work together.

Agents on branches

  • New Agent in Worktree…, in the command palette or a project's
    menu, starts an agent on a new branch, in a git worktree of its own
    under the repository's .worktrees folder, with your .env files
    copied in. Run several at once: none touches another's files, or
    yours. From an agent or a script: omaterm new --worktree fix-login -- claude.
  • The session shows its branch, and the Git tab follows it into the
    worktree, with a Branch view of everything the branch changed
    since it started.
  • Merge into main… squashes the branch into one commit, or makes a
    merge commit, then removes the worktree. A merge that would conflict
    isn't made: Update from main brings main's new commits into the
    worktree, so conflicts are resolved there, never in your checkout.
    Your uncommitted files in the main checkout are never overwritten.
  • Push & Create PR and Discard Worktree… are in the session's
    menu too. Closing a session asks before it drops work that isn't in
    main; omaterm close always keeps the worktree.
  • A worktree whose folder is gone says so in its session, rather
    than running quietly in your home folder.

Agents working together

  • An agent can lead others. It starts workers in worktrees made
    from its own branch, which nest under its session in the sidebar,
    collapsible with a count. Closing the lead asks whether to close
    them too or keep them.
  • omaterm ask, reply and inbox. ask types a message into
    another agent's prompt once that agent is at its prompt and you
    aren't typing there, and waits for the answer; with --no-wait the
    answer comes to the asker later as a message of its own, waking it.
    An agent that stops without answering sends back the end of its
    screen. Two agents can't wait on each other forever.
  • omaterm merge w1 takes a worker's branch into the lead's own.
    Merging into main stays yours; a conflict is sent back to the
    worker to resolve.
  • omaterm wait a b --any|--all waits for several sessions at
    once, and omaterm diff --branch shows a worker's own changes,
    without the lead's.
  • Ask for Review…, in a session's menu or the palette, starts a
    second agent beside it, Codex reviewing Claude Code for instance.
    The reviewer reads what the session changed, changes nothing itself,
    sends the agent what to fix for up to three rounds, then tells you
    its verdict, which shows under its session.
  • The skill teaches all of it to Claude Code, Codex, Pi and
    OpenCode; omaterm skill setup updates an installed one.

Smaller things

  • Ctrl+click a path an agent printed, src/app.go:42:7, and the
    editor opens it at that line and column, taken from the folder the
    program runs in.
  • What an agent last said of its turn shows under its session, in
    the sidebar, the palette and on your phone: a report's message, or
    Claude Code's last paragraph.
  • omaterm send and prompt wait for you to finish typing in
    that pane, and prompt pastes its text into the agent's prompt as
    one piece. Neither counts as your typing anymore, so a lead's
    message to a worker no longer holds its mail back.
  • Every pane knows its project: $OMATERM_PROJECT and
    $OMATERM_PROJECT_DIR, beside $OMATERM_SESSION and
    $OMATERM_PANE.
  • omaterm restart keeps a pane's environment, and the command it
    was started with.
  • omaterm report reaches the sidebar from inside Claude Code and
    Codex
    , and an agent's own report stands over its program's bare
    one.
  • Codex's "hooks need review" screen counts as needing you, so a
    message isn't typed into it. Approve omaterm's hook once with
    /hooks in Codex.

omaterm 0.9.9

Choose a tag to compare

@github-actions github-actions released this 28 Oct 01:58
81cbef4

Shortcuts that fit your Mac, and a window that fits half a screen.

Keyboard shortcuts

  • ⌘W closes the tab on macOS, not omaterm. The menu bar's Close
    Window took it, and with it the app. ⌘R, ⇧⌘R and the zoom keys did
    nothing there, and now reload, split right and zoom.
  • Ctrl+W (⌘W) closes the pane you're in, and the tab with its last
    pane, as the pane's × does. It ended every shell of a split, and
    closing a browser pane closed the session beside it.
  • Option types again on macOS. ⌥1 typed ¡ (and [ ] { } @ on German
    and Nordic keyboards) while it switched tabs. On a Mac, tabs are now
    ⌘1–⌘9, projects ⌥⌘1–⌥⌘9, and a browser pane goes back and forward
    with ⌘[ and ⌘]. ⌥← and ⌥→ move the shell's cursor by words. Linux
    and Windows keep Alt.
  • The editor's two-key shortcuts work: Ctrl+K Ctrl+0 folds
    everything rather than resetting the zoom.
  • Shortcuts in a web page follow your keyboard's layout. On AZERTY,
    Ctrl+Z in a page's form closed the tab.
  • The shortcuts list finds "cmd+shift+d" on macOS, where it shows
    ⇧⌘D.

Smaller things

  • The window goes down to 600 wide. Tiled to half a laptop's
    screen, it was drawn 900 wide anyway and squeezed, its text tall and
    narrow. The side panels give way when there's no room, and come back
    as it widens.
  • Quitting asks first when it would end a running agent: on
    Windows, or with the session daemon off, sessions end with the app.
  • An agent's panes stay in its own project. A Claude Code
    background session could take a pane of another project for its own,
    and start its dev server there.
  • Open in Default Browser works on macOS and Windows.

omaterm 0.9.8

Choose a tag to compare

@github-actions github-actions released this 26 Oct 19:50

Files

  • The Files tab shows every file, and dims what git ignores, as
    VS Code does. Dotfiles such as .github and .env were missing, and
    ignored files such as build output looked like source. .git stays
    hidden, and an ignored folder such as node_modules is read only as
    you open it.

omaterm 0.9.7

Choose a tag to compare

@github-actions github-actions released this 26 Oct 19:02

Things that worked, but not quite right.

Git

  • Every file name works in the Git panel. A name with a space or an
    accent couldn't be staged or discarded, and git's warnings showed as
    files.
  • Merge conflicts show as conflicts, marked "!", with Mark Resolved.
    They looked untracked, and Discard did nothing to them.
  • Each diff tab shows its own diff, named for its file. All of them
    were "Diff", and showed whichever diff was opened last.

Files and the editor

  • Quick open and the Files tab show the files as they are now. A
    file an agent made didn't appear until a restart. Opening a file that
    is gone says so.
  • Alt+Up and Alt+Down move lines in the editor, rather than
    switching sessions.
  • A very large file or picture shows a note rather than filling
    memory: a log of gigabytes, or a picture claiming 30000×30000 pixels,
    could get the app killed.

Smaller things

  • Closing a pane leaves the keyboard in the one next to it, and
    Ctrl+W with "No file open" on screen no longer closes a session.
  • Settings' text fields behave: Escape closes the window again
    after a field disappears, the web port doesn't refill while you clear
    it, and a half-typed shell isn't used.
  • The Info tab's open button for a port opens its page. The
    editor's two buttons that did nothing are gone, and the Keyboard page
    shows Alt+1 to Alt+9 rather than the first two.
  • Cyrillic text no longer confuses session status, and a theme's
    palette is read right when it repeats a color.

omaterm 0.9.6

Choose a tag to compare

@github-actions github-actions released this 26 Oct 18:51

No more hangs, and what you see stays true.

Nothing hangs

  • Global search returns when it finds more than it shows. A broad
    search used to show nothing at all.
  • omaterm wait ends when its session closes, rather than waiting
    for ever.
  • Committing no longer freezes the window while the repo's
    pre-commit hooks run, and neither do checkout, the branch list or
    turning web access on and off.
  • Reconnecting to the session daemon keeps trying until it connects.
    After 10 seconds it gave up, said it was connected, and left every
    pane blank.

What you see stays true

  • Sessions made from your phone or the omaterm command while the
    app was reconnecting are kept
    , and a session you closed meanwhile
    stays closed.
  • A session you close always ends, even when the session daemon was
    slow or away. Its programs used to run on unseen.
  • The session on screen stays read after the daemon reconnects.
  • The branch shown follows the repo after a git switch in a
    terminal.
  • Git says why it failed: a hook's verdict, a missing user.email,
    rather than "exit status 1".
  • Edits you make in settings.json while omaterm runs are kept. A
    zoom or a theme change wrote over them. A wrong value now passes over
    that one setting, rather than resetting them all.
  • A command answered "busy" never runs later. An agent that tried
    again made a second session.

Steadier underneath

  • A program printing notifications in a loop shows one every 5
    seconds, not thousands.
  • A slow phone on web access no longer makes the session daemon
    hold hundreds of megabytes of screens.
  • The session daemon doesn't quit while a command is under way.
  • Paired devices stay revoked, however many omaterm processes change
    web access at once.
  • Setting up the agent integration keeps a symlinked settings file
    a dotfiles manager tracks.
  • Sockets that don't fit their folder go in a folder only you can
    open, not the shared /tmp.

omaterm 0.9.5

Choose a tag to compare

@github-actions github-actions released this 26 Oct 17:58

Nothing lost, and no crashes: a second look at what could go wrong.

Your work is safer

  • Unsaved edits are never lost unasked. Closing an editor's tab with
    its ×, quitting, closing the window and Restart Now now ask first. They
    used to drop your changes without a word.
  • The editor follows its file on disk. A file an agent changes while
    it's open now shows the change, and saving no longer writes your old
    text over theirs: if both changed, omaterm asks. Saving can no longer
    leave a file empty when the disk is full.
  • Discard and stash Drop ask first. Both are one click on an icon
    that appears next to Stage, and can't be undone. A quick second Drop no
    longer drops the wrong stash.
  • Removing a project says what it ends: a running agent or server,
    and unsaved files. Close Pane in the palette asks when a program still
    runs, as the pane's × does.
  • Turning "Start the session daemon at login" on or off asks first.
    It restarts the daemon, which ends the programs your sessions run.
  • "Run Without It" no longer resumes each agent twice. The other
    version's daemon still runs your sessions; a banner says so.
  • Agents can't end every session. With "Let agents control the app"
    on, omaterm do could restart the session daemon, set up the agent
    integration, install the command or pair a device. It can't any more.

omaterm stays up

  • The session daemon no longer crashes when a pane is started twice
    at once
    , which could happen at login, taking every session with it.
  • No crash when the last project is removed while it loads.
  • A project's Git status, files and branch stay with it. Switching
    projects quickly could show the last one's changes, so Stage and
    Commit acted on its repository.
  • A closed session's scrollback is gone from disk for good with the
    session daemon too, and old scrollback no session holds is cleaned up.
  • Built with Go 1.27.3, which fixes vulnerabilities web access could
    be reached through.

omaterm 0.9.4

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:27

Polish: omaterm looks like one app from corner to corner.

  • One dialog style. Confirmations in the main window, sheets in
    Settings and the Pair dialog share one width, place, title and button
    size, with red for the button that destroys something.
  • One header for every view. An editor, a picture, a diff and the
    Git graph have a terminal pane's header: as tall, with its title, so
    switching tabs no longer moves the content.
  • Changed files read alike in the Git tab, Changes and a commit's
    files: the file's icon, its name with its folder beside it, and its
    status letter at the end, in rows of one height.
  • The Git graph's columns line up in every row, wherever a branch
    opens.
  • The command palette's titles start at one edge; sessions and
    projects name their kind as commands and settings do.
  • Banners are built alike: the agent setup offer shows a bot, and
    putting something off reads "Not Now" everywhere.
  • Long branch names use the room there is in the status bar and the
    Info tab before they're cut.
  • Light themes: pane cards have a hairline edge, and the focused
    pane of a split shows its ring.
  • Smaller things: folders come first in the file tree; the Git
    graph shows no dash before its count is known; the branch picker's
    "current" badge is legible on the chosen row; a markdown preview
    doesn't show a caret position; the phone key bar's keys have room
    around their labels; Settings' "Open settings file" lines up with the
    pages above it.

omaterm 0.9.3

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:02

A steadier main window, and fewer surprises.

Dialogs and windows

  • A confirm dialog acts on what it asked about. A session closed or
    a tab moved from the command line while "Close this tab?" was open
    could make it close a different one, possibly a running session.
  • Dialogs come first. The command palette or a picker no longer
    opens over a dialog waiting for your answer, and a dialog that opens
    closes the picker that was up.
  • Pickers dim what is behind them, and global search keeps its full
    height while it has few results.
  • Narrow panes keep Close and Zoom in reach; the git and status chips
    shrink first.
  • Tabs that don't fit scroll with the shown one kept in view, and
    "+" stays put. They used to be cut off with "+" out of reach.
  • The sidebar footer fits a narrow sidebar.
  • No stray shell inside a diff or an editor tab. One was started
    there, out of sight, and kept running.
  • The status bar's process and port items open the Info tab.
  • A session rename is kept when you click away, as Enter keeps it.
  • The diff header reads plainly: "Index → Working Tree" or
    "Staged: HEAD → Index".

Sessions

  • Restarting a session runs its command again, rather than leaving
    a bare shell: a dev server comes back as a dev server.
  • A program that fails says so: its session shows as failed with
    " exited (code N)", and a shell that dies on its own tells you
    before its session goes.
  • The omaterm command says why it can't reach omaterm (permission,
    or the app not answering) rather than only that it couldn't.
  • A closed session's scrollback is gone from disk for good. A save
    running just as it closed could write it back.
  • The Info tab stops refreshing when you leave it.

Housekeeping

  • Files left by the first omaterm are removed: its old workspace
    files and its shell histories. Your config.toml is left alone.
  • The unused "block ads" setting is gone.

omaterm 0.9.2

Choose a tag to compare

@github-actions github-actions released this 26 Oct 13:33

This release is about your sessions being safe, and omaterm staying up.

Your sessions are safer

  • A damaged sessions file no longer wipes your sessions. If omaterm
    couldn't read its sessions file, it started empty, ended every running
    session (and its scrollback) as unknown, and deleted the file as the
    window closed. It now keeps a copy, leaves the file and every session
    alone, and tells you.
  • A project whose folder is missing keeps its sessions. When a
    project's folder was gone at launch (an unplugged drive, a rename), the
    project and its sessions were dropped. It now shows as "folder missing",
    its sessions keep running, and it comes back with the folder.
  • Each session reopens as you left it: the pane you were in, the
    zoomed pane, and the session each project showed. omaterm used to open
    on the first pane of the first session.
  • A name you give a session sticks. An agent that had named the
    session first renamed it back at its next conversation.
  • Agents resume after the session daemon restarts. Without the
    systemd service, a daemon restart brought agents back as bare shells.
  • Sessions made from your phone while omaterm was reconnecting are no
    longer dropped.
  • Upgrading from 0.8 keeps your text size and diff layout.

omaterm stays up

  • If omaterm crashes, it keeps the report and tells you at the next
    launch, with Show Report. Settings › About lists the reports.
  • The session daemon survives a bug in one request, rather than ending
    every session with it, and a paired device can no longer exhaust its
    memory.
  • A session daemon that stopped answering no longer freezes the window.
  • No more crash when showing a project after one of its sessions was
    closed from the command line or a shell exited in it; such sessions
    also no longer stay behind, dead.
  • Status keeps updating after "Restart Sessions". It froze for the
    rest of the run.
  • Programs reading the clipboard no longer hang while the window is
    closed.

Settings

  • Keyboard lists and filters every shortcut itself. "All Keyboard
    Shortcuts" opened a dialog in the main window, under Settings.
  • Text fields take what you type with Enter, and Escape puts back
    what they had; switching windows no longer applies a half-typed value.
  • Confirmations that remove something are red, as elsewhere.
  • Choosing Custom… for the search engine keeps the current one until
    your URL works.
  • Search lands on every setting it finds, and Enter opens it.
  • The window fits at its smallest size, toasts show in it, and closing and
    reopening it quickly keeps it open.

omaterm 0.9.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 01:52

Closing Settings no longer closes omaterm

Closing the Settings window with its close button, Escape or Ctrl+W
crashed omaterm, taking the main window with it. It now closes only
Settings.

Settings sits with the sidebar's buttons

The gear moved from the right end of the status bar, where it was easy
to miss, to the bottom of the sidebar, before Open Project and the
command palette.