Support

Known issues.

Last updated: 2026-11-07 · Lastout 0.4.2

What doesn't work yet in the current release, what you see when you hit it, and what to do meanwhile. Each item here was reproduced by us. When a fix ships, the item goes; the changelog says what changed. Found something that isn't here? Write to support@lastout.dev.

Terminals and shells

tmux and screen: the shortcut can copy the wrong command

With the terminal window itself in front, ⌃⌥⌘C can copy a command from before tmux or screen started, or report only that tmux is running, and the notice looks like a normal copy. Meanwhile: press ⌃⌥⌘L and pick the command, run lo in the pane, or press ⌃⌥⌘C from another app (a browser, a chat window): those get the pane's latest command.

tmux sees Lastout's proxy as the pane's process

#{pane_current_command} and the default window name show lastout-shell, #{pane_current_path} stays where the tab was opened (so a split made with -c "#{pane_current_path}" opens there, not in your current directory), and plugins that read ps -t #{pane_tty} (vim-tmux-navigator) can't see your programs. Meanwhile: name windows yourself (tmux rename-window). There is no workaround for the directory and the plugins yet.

Warp, JetBrains IDE terminals and Emacs terminals aren't recorded

Nothing in the app says so yet: it keeps waiting for a first command. Meanwhile: use one of the recorded terminals: Ghostty, iTerm2, Terminal, kitty, WezTerm, Alacritty, and the terminals of VS Code, Cursor and Zed.

A command started with zsh -i -c, bash -i -c or fish -ic stops at a prompt

In a recorded terminal such a command doesn't run: a prompt appears instead, and nothing says why. Zed runs its tasks this way, so a Zed task leaves a prompt and no output (Zed's terminal panel itself is recorded). A fix is planned for the next release. Meanwhile: run the command yourself in the terminal panel. If you need Zed's tasks now, keep Lastout out of Zed's shells, for example in ~/.zshenv: [[ $ZED_TERM == true ]] && export LASTOUT_DISABLE=1 (Zed's terminals are then not recorded).

Aliases, functions and GPG_TTY set in ~/.zprofile don't reach the recorded shell

In a new tab, aliases and functions defined in ~/.zprofile are missing, logout says this is not a login shell, and ~/.zlogout doesn't run. If GPG_TTY is set there and your pinentry runs in the terminal (pinentry-tty, pinentry-curses), a signature fails and the passphrase you type can be echoed, run as a command and recorded, by Lastout and by the shell's history. A graphical pinentry doesn't go through the terminal. Meanwhile: move those lines to ~/.zshrc, and set export GPG_TTY=$TTY there. If a passphrase was recorded: lo forget, check ~/.zsh_history, and change it.

Terminal.app closes a tab with a running command without asking

Terminal sees Lastout's proxy as the tab's shell and can't see the programs inside it, so ⌘W on a tab that is running something closes it at once and the command is killed; it used to ask first. In iTerm2's "If there are jobs besides" mode, add your shell (zsh) to the list, or it asks every time. Meanwhile: look before ⌘W.

code . typed in VS Code's own terminal opens a window that isn't recorded

0.4.2 records editors started from a recorded terminal tab. A window opened from inside VS Code's or Cursor's own integrated terminal still isn't, since both sides are the same editor and the new one looks like a shell inside a recorded one; lo doctor in it says the shell only borrowed Lastout's environment. Meanwhile: open the editor from the Dock, Spotlight, or a terminal app.

Copies and redaction

Some ways of writing a password aren't recognized

Redaction knows formats, not every secret. Not caught today, among others: curl -u user:pass, mysql -p<password>, sshpass -p, docker login -p, Cookie headers, DB_PASS=; the privacy policy has the whole list. Meanwhile: look before you paste. Start a command with a space to keep it out of the recording; lo forget removes one already recorded.

Folder and git branch names aren't redacted

A token in a directory or branch name shows as typed in lo sessions and in a coding agent's list of terminals. Meanwhile: rename the branch or folder.

A long log's error in the middle can be left out of the copy

The default copy keeps the start, the errors it has room for, and the end. With long lines (over about 100 characters, as in JSON or Spring Boot logs) and the error far from the end, the error can be dropped while the footnote still says "head, errors and tail". Meanwhile: lo --mode errors finds it; lo --mode full copies everything.

The Running list can keep a command that already ended

When the recording process was killed, or the data folder was moved, while a command ran, its entry stays under Running in the menu and the picker. Meanwhile: open a new terminal tab: it cleans the entry up.

Coding agents (MCP)

wait_for_command times out while another terminal is busy

With something running in any other terminal, including the agent's own or a dev server, wait_for_command waits for its whole timeout and then says the command is still running, even when it finished seconds ago. Meanwhile: have the agent pass session to name the terminal you'll use; the finished output is readable with get_command_output right away.

Display

On an external display, the island, the copy notice and the picker stay on the built-in screen

In island mode on a Mac with a notch, the notice after a copy and the ⌃⌥⌘L picker appear on the MacBook's own screen even when you work on the external one; the copy itself is fine. Meanwhile: Settings → Appearance → Floating bubble (or Menu bar only): those follow the screen you are on.

Not tested by us yet

These may work; we haven't run them, so a report from you helps:

  • the app on an Intel Mac (only lo was run there, under Rosetta);
  • macOS 14, 15 and 26: our runs so far are on macOS 27;
  • lssh against a real remote host;
  • FileVault turned off, or automatic login, where the keychain holding the license may not be readable yet;
  • an external display with the lid closed, Stage Manager, full-screen Spaces.