Skip to content

Next Term: The missing IDE for the terminal

A native macOS terminal and code editor for running AI coding agents side by side. Claude Code, Codex, Gemini CLI and the rest each get a tab, and every tab shows whether its agent is working, done, or waiting on you.

Version 0.9.0Free and open source (MIT)macOS 13 or laterApple Silicon and Intel16 MB download

The Next Term window: a project sidebar with git line counts on the left, and a diff tab where Claude proposes changes to main.php, old on the left and new on the right, with Reject and Accept buttons. Terminal tabs run along the bottom.
Claude Code proposes an edit; Next Term shows it as a side-by-side diff. Accept with ⌘↩︎, or Reject.

Five agents, five tabs. Which one needs you?

Running agents in parallel is fast until you lose track of them. One is still thinking, one finished ten minutes ago, one has been waiting for your “yes” the whole time. A plain terminal shows five identical tabs.

Next Term marks each agent’s tab: a spinner while it works, a green check when it is done, an amber “!” when it is asking you something. When an agent needs a decision, a notification says so and takes you to the tab.

A row of terminal tabs: two plain shells, then a green check, a red cross, an amber exclamation mark and a blue spinner.

Know which agent needs you

  • Status in step with the agent

    A spinner while an agent is working, read from its own screen for Claude Code, Codex, Command Code and Gemini CLI, so it stops the moment they stop; other agents go by output timing. Plain commands end with a check or a red cross.

  • Decisions come to you

    When an agent asks for permission, a notification quotes the question. Click it to land on that tab.

  • However you start it

    Directly, through an alias or a shell function, with npx, or as cd app && claude. Your zsh setup loads exactly as before.

  • A count on the Dock

    The Dock badge shows how many tabs finished while you were in another app.

How agent status works

  • Claude Code’s IDE link, built in

    Select lines and Claude gets them with your next prompt (“⧉ 10 lines selected”). Nothing to install or configure.

  • Edits you approve

    Claude’s proposed changes open as a side-by-side diff. Accept with ⌘↩︎, or Reject. Gemini CLI and Qwen Code work the same way.

  • Send to Agent, for every agent

    ⌥⌘K types your selection or files into the agent’s prompt in its own syntax: @app/User.php#L10-20 for Claude, app/User.php:10-20 for Codex. It never presses Return for you.

The IDE link and Send to Agent

Two lines selected in the editor, and Claude Code in the terminal below showing “2 lines selected” in its prompt.

One agent can run the others

Next Term is an MCP server. Ask Claude Code, Codex or any agent that speaks MCP to open your projects, start other agents in new tabs, on your Mac or on your servers, give them their tasks, wait for them and read what they did. You watch every tab, and step in whenever you like.

You ask your agent

Open ~/Code/api and ~/Code/web. Start Claude Code in api and Codex in web, give each its task, wait for both, and tell me what each one changed.

  • Sees every tab

    Every project and tab, with each agent’s state: working, done, failed, or waiting on a decision, with the question.

  • Acts as you would

    Opens projects, starts agents in new tabs or split panes, types prompts, waits until an agent stops, reads its screen, answers its questions.

  • Uses the editor

    Your selection, the open files, any file opened at a line, and each project’s files, search and git changes, with secrets left out.

  • Set up for you

    In Claude Code, Codex, Gemini CLI, Qwen Code, Cursor Agent, opencode, Copilot CLI, Amp, Junie and Command Code. Only its own entry is written, comments kept.

  • Asks before it acts

    Typing into a tab, answering an agent and closing a tab are marked as destructive, so agents ask first. No agent can type into its own tab.

  • Private

    A socket only you can open, and no network port. Settings turns it off and removes the entries.

18 tools for the projects, tabs and editor on your Mac

  • list_tabs
  • read_tab
  • wait_for_tab
  • list_projects
  • get_editor_selection
  • get_open_files
  • read_file
  • find_in_files
  • git_status
  • get_diff
  • open_project
  • new_tab
  • send_to_tab
  • press_keys
  • answer_agent
  • show_tab
  • close_tab
  • open_in_editor

7 more for your servers

  • list_hosts
  • add_host
  • remove_host
  • check_host
  • new_remote_tab
  • host_sessions
  • host_changes

Orchestrate agents (MCP)

Agents on your own servers

Shell › New Remote Tab… (⌥⌘T) opens a tab on any server you reach with ssh. Start Claude Code or Codex there, close the lid, and with tmux or herdr on the server the agent keeps working; open the Mac again and the tab is back where it was.

  • Your ssh, as you set it up

    Your ~/.ssh/config, keys, ProxyJump and key agents such as 1Password apply. Tabs on one server share a connection, so you log in once.

  • Kept running

    With tmux or herdr, a session outlives a sleeping Mac or a dropped network. The tab reconnects by itself, and comes back at the next launch.

  • The same marks

    Agents on a server get the spinner, the check, and the amber “!” with the question, and your agents can open tabs there through MCP.

Remote tabs on your servers

An editor where the agents work

  • A real code editor

    Above the terminal: colours from 112 grammars, soft wrap, ⌘P to go to a file, ⌘/ to comment, ⌘L to go to a line. When an agent changes an open file, the editor follows.

  • Changes side by side

    ⌥⌘G shows old beside new, changed words marked. Stage, unstage or revert one hunk at a time; each action checks the file first, so an agent’s edit is never overwritten.

  • Git at a glance

    The project sidebar colours changed files and shows +12 −3 per file and folder, like a pull request, with the branch and ahead/behind at the top. In the editor’s gutter, a bar marks each added or changed line as you or an agent type.

  • Paths in the output open

    ⌘-click src/app.ts:42:7, or a Python traceback’s File "graph.py", line 42, and the file opens at that line. pytest and ruff lines work too.

  • Find and Replace in Files

    ⇧⌘F and ⇧⌘R across the project, with regular expressions, file masks and a preview of every replacement.

The editor · Diffs · Projects and git

A side-by-side diff of diff.txt against HEAD, with All Changes, Unstaged and Staged views, +2 −2, and a Revert Hunk button.

Git, from branch to blame

  • The branch popup

    Click the branch, or press ⌥⌘B: one search over branches and actions. Update Project, Commit… and Push… each show what they would do (↓3, +41 −10, ↑2).

  • Nothing behind an agent’s back

    It asks before changing files under a working agent, keeps your uncommitted changes in a named stash when you switch, and every deleted branch has Undo.

  • Commits you can read

    Commit… shows exactly what goes in and calls out files that look like secrets. Let Agent Commit hands it to your agent instead.

  • The Git Log

    ⌥⌘L opens the history as a graph in a tab, with branch, author, date and path filters, each commit in full, and its changes side by side.

  • Blame in the editor

    View › Annotate with Git Blame shows who last changed each line, and when, beside the line numbers, the newest work brightest. Click one for its commit in the Git Log.

  • Every command written down

    Git › Git Commands lists each git command Next Term ran for you, exactly as it would be typed.

Branches · Git Log · Git blame

Notebooks, data and databases

  • Jupyter notebooks

    An .ipynb opens as cells with their saved outputs: Markdown laid out, code coloured, images shown, errors in red. Nothing runs, and Open as JSON is one click away.

  • Large data files

    A JSON Lines, CSV or TSV file over 2 MB opens in a head view: its first 1,000 rows as a table, as quickly for a 2 GB file as for a small one.

  • Prompts read as prompts

    {context} placeholders and {{ question }} templates inside Python strings get their own colour, and Prompty, Mermaid and Cypher files have grammars of their own.

  • Your project’s databases

    The databases a project names in its own files (DB_* keys, DATABASE_URL, Prisma, Drizzle, Supabase, SQLite files) sit in the sidebar, local or remote, password masked.

  • SQLite, read-only

    A SQLite file opens in a tab: its tables, 1,000 rows a page, Copy As CSV, JSON or Markdown, and Send to Agent.

  • Hand-offs

    Open in TablePlus, or mysql and psql in a new tab for a local database. The password goes through a private file that is deleted at once, never the command line.

Notebooks · Large data files · Databases

Made to fit how you work

  • Split panes

    ⌘D splits a tab right, ⇧⌘D down; ⌥⌘ and the arrows move between panes. The tab shows the mark of the pane that most needs you.

  • Go to File

    ⌘P and a few letters: usrctl finds UserController.php. Add :42 for the line.

  • Your layout

    The terminal below, beside or above the editor; the sidebar on the left or right.

  • nxtrm in any terminal

    nxtrm . opens a project; nxtrm app/User.php:42 opens a file at a line.

  • Every menu shortcut is yours

    Change any of them in Settings (⌘,), or keep the keys you know from another editor.

  • Bring your settings over

    From VS Code, Cursor, a JetBrains IDE, Zed, iTerm2, Ghostty or Terminal: your shortcuts, fonts, terminal colours and recent projects. You see each change first, and one click undoes it.

  • Pick up any conversation

    The Welcome window lists the sessions Claude Code, Codex and Command Code kept for each project. Resume or Fork one in a tab; ⌥⌘O does it in a project window.

  • Tabs that serve

    A tab running npm run dev, uvicorn or langgraph dev shows its port, such as “app · :5173”, and Shell › Open Served URL opens it.

  • Updates in one click

    Signed with the release key and checked before anything is replaced.

Switching to Next Term

Works with the agents you already use

Next Term brings no AI of its own and needs no account. It runs the agent command-line tools you install, and anything else you run in a terminal: tests, dev servers, ssh.

Connected as their IDE

Status, live selection, proposed edits as diffs, MCP tools, Send to Agent

  • Claude Code
  • Gemini CLI
  • Qwen Code

Recognised by name

Status on the tab, decisions as notifications, Send to Agent; MCP tools set up for Codex, Cursor Agent, opencode, Copilot CLI, Amp, Junie and Command Code

  • Codex
  • Command Code
  • Junie
  • opencode
  • Aider
  • Amp
  • Cursor Agent
  • Goose
  • Crush
  • GitHub Copilot CLI
  • Droid
  • Kiro
  • Amazon Q
  • Kimi
  • Plandex
  • Cline
  • Auggie

Local by design

  • Your code stays on your Mac

    The agent links listen on 127.0.0.1 only and refuse browsers; the MCP server uses a private socket, with no network port.

  • A fresh token every launch

    A new 256-bit secret each time Next Term starts. .env files and keys are never shared.

  • No account, no telemetry

    On its own, Next Term only checks GitHub for updates once a day and fetches from your projects’ own git remotes. You can turn off either.

  • Databases stay put

    Found by reading the project’s files, never by running its code. Passwords are never shown, logged, copied or handed to an agent.

  • Your servers, your ssh

    Host keys are never accepted silently, no password is stored, and nothing on a server can reach back to Next Term.

  • Open source, MIT

    Read every line on GitHub. Releases are built from it by GitHub Actions, with a SHA-256 checksum for every download.

Security and privacy in detail

Install in a minute

In one line, from the terminal:

curl -fsSL https://nxtrm.mishuk.me/install.sh | bash

It checks that the release’s checksum is signed with the Next Term release key and that the download matches it, then copies Next Term to Applications, with no sudo, and macOS doesn’t ask you to allow the first launch. Read the script. Or with the disk image:

  1. Download NextTerm.dmg, the latest version (0.9.0), straight from its release on GitHub.
  2. Open it and drag Next Term to Applications.
  3. Allow the first launch. Next Term is not notarized. On macOS 15 and later, open Next Term once, then go to System Settings → Privacy & Security and click Open Anyway. On macOS 13 and 14, right-click the app, choose Open, then Open again.
  4. Choose a folder to work in. Next Term opens it as a project, and reopens it next time.

Optional: download its checksum next to it and check it with shasum -a 256 -c NextTerm.dmg.sha256. After this, Next Term updates itself.

The full install guide

What comes next

  • Coming next Sessions from more agents. The conversations Gemini CLI, opencode, Copilot CLI and Cursor keep, in the Welcome window beside Claude Code’s, Codex’s and Command Code’s.
  • Coming later A server’s files in the editor and sidebar, next to its remote tabs, and then dev containers.
  • Coming later Remote access to the MCP server for agents that do not run on your Mac, such as ChatGPT and Claude on the web, through a secure link.

Questions

Is Next Term free?

Yes. It is free and open source under the MIT licence, with no account and no paid tier. The source is on GitHub.

Does it come with its own AI?

No. Next Term runs the agent command-line tools you already use, such as Claude Code, Codex and Gemini CLI, signed in the way each of them normally is.

Does Next Term send my code anywhere?

No. The agent links listen only on your Mac, with a fresh token each launch, and never share .env files or keys. On its own, Next Term makes only a daily update check to GitHub and background fetches from your projects’ own git remotes, and you can turn off either.

Can one agent control the others?

Yes. Next Term is an MCP server, set up for you in Claude Code, Codex, Gemini CLI and seven other agents. An orchestrator can list every tab with its agent’s state, start agents, send them prompts, wait for them and read their screens. It works only on your Mac, and Settings turns it off.

Can my agents run on a server?

Yes. Shell › New Remote Tab… (⌥⌘T) opens a tab on any server you reach with your own ssh. With tmux or herdr, the session keeps running while your Mac sleeps, the tab reconnects by itself, and its agent gets the same marks as one on your Mac.

Why does macOS ask me to allow the first launch?

Next Term is not notarized by Apple. Allow it once with Open Anyway in System Settings → Privacy & Security (macOS 15 and later), or right-click › Open (macOS 13 and 14).

All questions and answers

Run your agents side by side

Version 0.9.0 for macOS 13 or later. Free, open source, about a minute to install.