Skip to content

0.7.5 - 2026-10-26

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Oct 15:42

Release Notes

Added

  • Other programs can message a running chat. Each interactive iota now
    listens on a private Unix socket, and a script, a CI hook or another iota
    can send it a line: iota resume <id> -m "…" (or iota run <bot> -m "…"
    for a running bot) used to refuse a session that was open elsewhere — it
    now hands the message to that chat and prints its receipt (woken,
    queued, held, or why not: blocked, too-large, refused,
    flooded). The message reaches the model at the next safe point — right
    away when the chat is idle, between tool calls when it is busy, never in
    the middle of one — as a dim [message from …] line, not as something you
    typed, and a leading / is never run as a command. The model is told it
    came from another process and is nobody's approval. A chat whose tools run
    without asking (auto_run, auto_write) answers held and asks you
    before the model reads it. A message is not held back after a rate limit
    or an Esc the way a finished job's notice is: it goes at once, as
    something you typed would. Programs started from the chat find the socket
    in IOTA_SOCKET. Only the same OS user can connect; there is no network
    listener. Not available on Windows yet.

Fixed

  • Hitting a provider's rate limit or usage cap no longer turns into an
    endless loop, and Esc really stops.
    When a request was refused with
    429 and retrying didn't help, every background job that finished started
    a new attempt and printed another Rate limited (429) error. Now iota
    stops on its own: notices from finished jobs wait (each one says so in a
    dim line), and while some are waiting iota tries once more later — when
    the provider says it may (retry-after), otherwise after a minute, then
    less and less often, at most every 30 minutes. Sending a message tries at
    once and takes the waiting notices with it; switching to another model or
    another provider with /model tries at once there. What you type is
    never overtaken by these automatic tries, and a notice is no longer lost
    when its turn is refused by a rate limit (any other failure still drops
    it, as before). The provider's own message, with its reset time if it
    gives one, is still shown. Pressing Esc now also holds the notices
    queued behind the turn you stopped: they go with your next message
    instead of starting new turns. A 429 now gets at most three more tries
    (it used to be ten), and a provider asking to wait more than a minute —
    with a 429 or any other error — is no longer waited out silently: iota
    stops and holds until then (a day at the most, however long it asks),
    unless the provider explicitly insists on being retried.
  • The queue's · ↑ edit hint no longer promises what ↑ can't do. ↑
    only brings back a message you typed — never the notice of a finished
    background job — yet a queue holding nothing but such notices still
    ended in · ↑ edit, and pressing ↑ did nothing. The hint now shows only
    while the queue holds something you typed.

Changed

  • Tool-call labels are easier to read. The [shell ls -la]-style label
    on every tool call — while the call is being written, while it runs, and
    in the line it leaves behind — is no longer one block of cyan. The
    brackets are faint, the tool's name is bold cyan, and what follows it is
    cyan; when a call shows its arguments as key:value, the keys are faint,
    so [srv:search limit:10 query:rust tui] reads as two arguments at a
    glance. … +N args and the … of a call still being written are faint
    too. The text is exactly what it was, and with NO_COLOR set the label is
    plain text as before.
  • tokio is 1.54.1 (RUSTSEC-2026-0386). The advisory is about
    AsyncFd's constructors, which neither iota nor any crate it builds on
    calls, so it never applied.
  • rustls-webpki is 0.103.16 (RUSTSEC-2026-0382). It now rejects
    certificate chains through the distrusted emSign intermediates, whose
    private keys are public. This mattered on Linux, where iota checks a
    server's certificate itself against the system's trusted roots; on macOS
    and Windows the operating system checks it.

Install iota 0.7.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iotash/iota/releases/download/v0.7.5/iota-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/iotash/iota/releases/download/v0.7.5/iota-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install iotash/tap/iota

Download iota 0.7.5

File Platform Checksum
iota-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
iota-x86_64-apple-darwin.tar.xz Intel macOS checksum
iota-x86_64-pc-windows-msvc.zip x64 Windows checksum
iota-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
iota-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum