npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

agent-cowork-memory

v0.3.2

Published

Shared memory and delegation for Codex, Cursor, Claude Code, and OpenCode.

Readme

Agent Cowork Memory (ACM)

 █████╗  ██████╗███╗   ███╗
██╔══██╗██╔════╝████╗ ████║
███████║██║     ██╔████╔██║
██╔══██║██║     ██║╚██╔╝██║
██║  ██║╚██████╗██║ ╚═╝ ██║
╚═╝  ╚═╝ ╚═════╝╚═╝     ╚═╝

Hit your Codex limit mid-task? Open Cursor, say "continue from Codex", and keep going. ACM gives Codex, Claude Code, Cursor, and OpenCode one shared memory, so you never paste context again, and any agent can put the others to work.

Verified by benchmark: with Codex on 38 held-out tasks, ACM finished 223 of 228 runs, against 130 with a pasted summary. Cursor and OpenCode performed similarly with ACM and summaries.

GitHub Release npm
CI License M8ven Score Agents supported Node Benchmark MCP supported CLI supported Codex icon Codex  ·  Claude Code icon Claude Code  ·  Cursor icon Cursor  ·  OpenCode icon OpenCode

Demo

Claude Code delegates to Codex, Cursor, and OpenCode through ACM

More demos on the ACM official site

Install

With Node 24 or newer:

npx agent-cowork-memory setup

Setup adds ACM to Cursor, and to Codex, Claude Code, and OpenCode when they are installed; Installed one later? Run setup again. Restart your agents, and ACM is available in every project.

Tested for real on Linux and WSL. macOS and Windows pass CI; real runs welcome.

Use

Memory Sharing

Open the same project in Codex and Cursor. To pick up a chat in the other agent, ask:

Use ACM to continue from Cursor.

Or, in Cursor:

Use ACM to continue from Codex.

Every agent can see every chat in the project. If there is more than one, the agent lists them (agent, time, thread, first message, and whether ACM started it for a delegated job) and asks you which one to continue. You can also name it:

Use ACM to continue the Codex chat about the trip.

Related work goes together in a thread: continuing a chat, or delegating from it, keeps the work on one thread, and a new chat can join one of the project's open threads. ACM keeps each thread's timeline as things happen (chats joining, jobs starting and finishing, notes added), so any agent can see where the work stands.

Ask your agent to remember a decision, and every agent in the project sees it. Notes stay true.

Delegate to other agents

Any agent can hand work to the others:

Tell codex to write plan.md, and claude to write packing.md.

Each agent gets a brief, joins the thread it was sent from, claims the files it edits so they don't collide, and reports back. Agents run in the background. With herdr installed, each one gets its own pane you can watch (herdr session attach acm). If you resumed a chat that's open in a herdr pane, work for that agent goes back to that chat, in its pane.

Benchmark

What it evaluates

  • How much of earlier chats' context survives when a new chat continues the work.
  • Each task is a small Python repo in two steps: earlier chats do step 1 and leave step 2's details in the chat.
  • The details sit in one short or long chat, spread over two chats, changed later, corrected mid-chat, or against a README that still says the old thing.
  • A run counts only if every hidden check passes, existing tests still pass, and no old or replaced value is implemented.

What we tested

  • Codex (gpt-6-luna, medium effort), Cursor (Grok 4.7 High), and OpenCode (GLM-5.3-Flash), continuing the work five ways:
    • no ACM;
    • ACM ("Use ACM to continue from my last chat…");
    • the summary the earlier chat writes when asked;
    • a careful handoff note, including any Markdown files its turn wrote;
    • every earlier chat pasted in.
  • Held-out tasks written before the runs, with the analysis fixed in advance. Pilot checks and earlier-chat guards determine which tasks count for each agent.
  • Two independent histories, 3 runs per way per history; no ACM runs once per history.

| Agent | Tasks | ACM | Summary pasted | Handoff note pasted in full | Full history pasted | | -------- | ----- | ----------------- | -------------- | --------------------------- | ------------------- | | Codex | 38 | 223/228 | 130/228 | 214/228 | 222/228 | | Cursor | 47 | 282/282 | 281/282 | 274/282 | 281/282 | | OpenCode | 42 | 242/252 | 237/252 | 235/252 | 244/252 |

npm run bench        # offline checks, free
npm run bench:live   # the live benchmark; spends your agent quota

MCP tools

| Tool | What it does | | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | context | Your thread and its timeline, the project's notes (after the first call, only what's new), open threads, recent jobs, who is working, and held files. Pass hold to claim files before writing, thread to join one, done to close yours. stale lists notes whose files changed, to re-check. | | note_add | Saves a note every agent sees, and shows notes it may contradict. tier: short (default, kept 7 days) or long; supersedes: the note it replaces. | | note_search | Finds notes and delegated jobs' results. | | chats | Lists recent chats from every agent in the project, and marks the ones ACM started. | | resume | Asks you which chat to continue when there are several, then reads it, with what you said in its thread's other chats, and joins its thread. | | delegate | Starts other agents with a brief, in herdr panes or in the background, and waits for them. | | delegate_wait | Keeps waiting on this chat's delegated agents. |

ACM tells which chat it is in on its own; no tool needs a session or, from the project folder, a path (every tool takes an optional repo_path).

CLI

| Command | What it does | | --------------------------------------------------------------- | ---------------------------------------------------------------------------- | | acm setup | Adds ACM to your agents. | | acm mcp --harness <agent> | Runs the MCP server; agents start it themselves. | | acm status [--repo <dir>] [--chat <id>] [--harness <agent>] | The project's jobs, held files, and a chat's thread, as JSON. | | acm doctor | Checks the install: Node, the database, herdr, and which agents are on PATH. | | acm backup [--to <file>] | Copies the database. |

--home <dir> (or ACM_HOME) moves ACM's state folder from ~/.agent-cowork-memory. Run them with npx -y agent-cowork-memory <command>, or acm once it's installed globally.