LispM

A Lisp Machine for agents.

AI agents that run inside Emacs. Their conversations are org documents, their tools are Lisp, and Emacs itself is the harness.

The editor, the operating system and their agents, one world.

On a Lisp Machine everything was a live Lisp object, and the editor and the system were one. Its inhabitants were programs. Emacs kept that way of working, if not the machine; LispM makes room in it for agents.

  • Conversations are documents.

    Each agent's chat is an org document, and that document is its context.

  • Tools are Lisp.

    An agent's tools are Elisp functions. It writes Lisp to combine them, and drives Emacs itself.

  • Approvals are TODOs.

    A command or an edit waits as an org TODO entry until you allow it.

  • Memory is git.

    What agents remember is org files under git.

LispM Agent

Emacs is the harness.

Talk to an agent in a chat laid out like Claude Code's. Underneath, the chat is an org document, its tools are Elisp, and it can evaluate Lisp in the Emacs you are using.

Ask, and it works in your project.

It reads the code, asks before it runs a command or changes a file, writes the fix and runs the tests.

  • Any model

    Any endpoint speaking the OpenAI Chat Completions API or the Anthropic Messages API, local or hosted.

  • Many agents

    Run several in a project, each in a session you can come back to.

  • Tools on demand

    A core set of tools, and the rest, MCP servers among them, found when a session needs them.

  • Woken by Emacs

    Hooks and timers start agents, and agents delegate work to each other.

LispM Desktop

A desktop for your agents.

An Emacs distribution built around LispM Agent, laid out as Mac OS 9's desktop and ready from the first start.

Every project, a workspace.

A desktop, a Finder for your files, and an editor with a workspace for each project, its files, agents and shells together.

Every agent, one sidebar.

LispM's agents, Claude Code, Codex and Hermes work side by side, every session listed in the sidebar to resume where it ran.

Make it yours.

Drag windows off the desktop, hide it and bring it back in a click, and change the look from the Control Strip.

  • Ready at once

    The first start asks for vim or Emacs keys and an appearance, then installs the rest.

  • Two appearances

    Platinum, Mac OS 9's own greys, and Dracula.

  • Leaves yours alone

    Try it with its own init directory; your configuration is not touched.

LispM Browser

The web, inside Emacs.

A WebKit browser in Emacs: tabs, history and bookmarks, the keyboard as Vimium uses pages, and Chrome extensions.

Browse from the keyboard.

The location field takes an address or a search; f labels every link in sight, and typing a label follows it.

Chrome extensions, inside Emacs.

On macOS 15.4 and later, WebKit runs Chrome extensions itself, as Safari runs its own. The APIs WebKit lacks are filled in, so even heavy extensions work: the Rabby wallet runs its worker, its page provider and its popup, and its approvals open in windows of their own.

  • From the Web Store

    The puzzle piece opens the Chrome Web Store; Add to LispM on an extension's page adds it: its signature is checked, and what it may do is asked first.

  • On the toolbar

    Each pinned extension has its button there, badge and all: a click opens its popup under it, a right click its menu.

  • A page of their own

    lispm://extensions, like chrome://extensions: turn them on and off, see what they may do, reload, remove, or load an unpacked one.

  • And from the keyboard

    M-e presses an extension's button for the page in front, and every action is a command, its questions asked in the minibuffer.

  • Tabs

    Every page a tab, with its icon, history and bookmarks kept as Emacs keeps them.

  • Steady

    Closing pages and running their scripts no longer crashes Emacs on macOS.

  • On its own

    Any Emacs built with xwidgets runs it; LispM Desktop makes it one of its applications.

Get LispM.

LispM is a Mac app. Emacs, the editor it is made of, comes inside it: you need not know Emacs to begin.

LispM's icon, the rainbow λ

LispM for Mac

macOS 11 or later, on Apple silicon or Intel. Free.

  1. Open Terminal.

    It is in Applications, in the Utilities folder; or press Command-Space and type Terminal.

  2. Paste this line, and press Return.

    Terminal
    curl -fsSL https://lispm.ai/install.sh | sh
  3. LispM opens.

    A few minutes later, once Emacs and LispM are in. From then on it is in Applications with your other apps.

The line runs install.sh, which installs Apple's command line tools if they are missing, puts LispM.app in Applications and LispM's files in ~/.lispm. Run the line again to update; delete both to uninstall.

Already use Emacs?

Each project also stands on its own, in your own Emacs.

LispM Agent

The agents, in your own Emacs 30.1 or later. Then M-x lispm in any project.

Emacs Lisp
(use-package lispm
  :vc (:url "https://github.com/LispMachineLab/lispm-agent" :rev :newest)
  :config (lispm-mode-line-mode 1))

LispM Desktop

What LispM.app runs, in your own Emacs 30.1 or later with SVG, git and curl, on macOS or GNU/Linux.

Shell
git clone https://github.com/LispMachineLab/lispm-desktop ~/lispm-desktop
emacs --init-directory ~/lispm-desktop

LispM Browser

The browser, in an Emacs 30.1 or later built with xwidgets.

Emacs Lisp
(package-vc-install "https://github.com/LispMachineLab/lispm-browser")
(require 'lispm-browser)
(lispm-browser-setup)

Then give the agents a model. Claude Code, Codex and Hermes, once installed, show beside LispM's own agents, which need only OPENAI_API_KEY or ANTHROPIC_API_KEY set in your shell's profile, where LispM.app reads it, or in your own Emacs's environment. For any other server, local or hosted, see Backends.