SkillAgentSearch skills...

nodecode

A living agent organism in Lisp.

Install / Use

npx skills add nodecode-ai/nodecode

Installs into whichever agent you are using.

About this skill
📦

Other

Other agent config

Quality Score

83/100

Supported Platforms

Claude Code
OpenAI Codex

Tags

Our assessment of nodecode

nodecode scores 83/100 on our quality scale, 672nd of 933 AI & Machine Learning skills we index.

Its Other is 15 KB long, well organised into 10 sections with 4 code examples: a thorough specification that gives an agent plenty to work with.

It has 158 GitHub stars, a meaningful sign that others use it.

Substance
30/30
Structure
20/20
Description
8/15
Adoption
9/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so nodecode is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 95/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

nodecode compared with similar skills

All 4 of these similar skills score higher than nodecode; compare them before choosing.

SkillScoreStarsUpdatedFormat
nodecode (this skill)by nodecode-ai83158todayOther
Agent-Reachby Panniantong100105.7k4d agoCLAUDE.md
claude-memby thedotmack100104.1ktodayCLAUDE.md
Understand-Anythingby Egonex-AI10088.8k3d agoCLAUDE.md
headroomby headroomlabs-ai10078.2ktodayCLAUDE.md

Frequently asked questions

How do I install nodecode?
Run npx skills add nodecode-ai/nodecode. The install tabs above show the steps for each supported agent.
Which AI agents does nodecode work with?
It is written for Claude Code and OpenAI Codex, as a Other file. Other agents that read the same format can often use it too.
Is nodecode safe to use?
It is MIT-licensed and scores 95/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is nodecode still maintained?
The repository was last updated today, so nodecode is actively maintained.
<p align="center"> <a href="https://nodecode.ai"><picture> <source media="(prefers-color-scheme: light)" srcset="resources/assets/readme/banner-light.svg"> <img alt="Nodecode" src="resources/assets/readme/banner-dark.svg" width="100%"> </picture></a> </p> <p align="center"> <b>A living agent.</b><br> It becomes yours and evolves over time. </p> <p align="center"> <a href="https://nodecode.ai">Website</a> &nbsp;·&nbsp; <a href="https://nodecode.ai/docs">Docs</a> &nbsp;·&nbsp; <a href="https://nodecode.ai/cells/browse">Cells</a> &nbsp;·&nbsp; <a href="https://foresight-labs.eu/research">Research</a> &nbsp;·&nbsp; <a href="https://discord.gg/cujGhaGCnS">Discord</a> </p> <br> <img alt="Nodecode in a terminal. Asked &quot;you can't read PDFs. teach yourself.&quot;, it defines read-pdf, the layer keeps it, and it reads invoices/0421.pdf: Globex owes $1,240.00, due Oct 24, unpaid." src="resources/assets/readme/read-pdf.gif" width="100%"> <p align="center"><sub><i>you can't read PDFs. teach yourself.</i> It defines <code>read-pdf</code>, keeps it, and reads the invoice. A take from the launch trailer: the shell and every evaluation are real, the model's reply is scripted so the take repeats.</sub></p>

Nodecode is an agent that rewrites itself. It runs as one process in SBCL, a Common Lisp system, and shells attach to it. The model has one tool: it evaluates Lisp in the running program and keeps what it defines.

Install

Linux and macOS:

curl -fsSL https://nodecode.ai/install.sh | sh

Windows, in PowerShell:

irm https://nodecode.ai/install.ps1 | iex

Then run nodecode. The first launch opens setup. If another coding agent lives on the machine (Claude Code, Codex, Hermes Agent, OpenCode, Cursor CLI, Gemini CLI and 9 more), setup names it and asks before it reads anything; say Import and it brings over the agent's keys, instructions, memory, skills, MCP servers, bots and jobs, tick the agents one by one when it found several, or Skip and /import brings them over later. Then you pick a provider, a model and the reasoning effort. See Quickstart and First run.

What's different

<picture> <source media="(max-width: 479px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-orchid-light.png 1x"> <source media="(max-width: 479px)" srcset="resources/assets/readme/emblem-orchid-dark.png 1x"> <source media="(max-width: 1279px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-orchid-light-stack.png 2.62x"> <source media="(max-width: 1279px)" srcset="resources/assets/readme/emblem-orchid-dark-stack.png 2.62x"> <source media="(prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-orchid-light-side.png 3.67x"> <source srcset="resources/assets/readme/emblem-orchid-dark-side.png 3.67x"> <img align="left" alt="An orchid branch in flower, drawn in cells" src="resources/assets/readme/emblem-orchid-dark.png"> </picture>

Updates while it runs

An orchid opens new flowers while it keeps growing. An installed Nodecode updates itself the same way: most releases go live in the running program, one changed definition at a time, with no restart. Its own growth is kept as generations: nodecode generations lists them, nodecode rollback N restores one, and --pristine runs the binary alone. Updates

<br clear="left"> <picture> <source media="(max-width: 479px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-dandelion-light.png 1x"> <source media="(max-width: 479px)" srcset="resources/assets/readme/emblem-dandelion-dark.png 1x"> <source media="(max-width: 1279px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-dandelion-light-stack.png 2.62x"> <source media="(max-width: 1279px)" srcset="resources/assets/readme/emblem-dandelion-dark-stack.png 2.62x"> <source media="(prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-dandelion-light-side.png 3.67x"> <source srcset="resources/assets/readme/emblem-dandelion-dark-side.png 3.67x"> <img align="left" alt="Two dandelion clocks shedding seeds as single cells" src="resources/assets/readme/emblem-dandelion-dark.png"> </picture>

Everything is a cell

A cell is a folder that teaches Nodecode something new: a chat room it can live in, a provider login, a tool, a skill, a GitHub repo, an MCP server. nodecode add nc://cline installs one from the hub and turns it on in every attached shell. Or ask Nodecode to write one. Cells

<br clear="left"> <picture> <source media="(max-width: 479px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-nautilus-light.png 1x"> <source media="(max-width: 479px)" srcset="resources/assets/readme/emblem-nautilus-dark.png 1x"> <source media="(max-width: 1279px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-nautilus-light-stack.png 2.62x"> <source media="(max-width: 1279px)" srcset="resources/assets/readme/emblem-nautilus-dark-stack.png 2.62x"> <source media="(prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-nautilus-light-side.png 3.67x"> <source srcset="resources/assets/readme/emblem-nautilus-dark-side.png 3.67x"> <img align="left" alt="A nautilus in its shell, drawn in cells" src="resources/assets/readme/emblem-nautilus-dark.png"> </picture>

Edits its own context

Like an organism, Nodecode decides what stays in its context and what goes, and nothing it lets go is lost. Old turns leave the window whole, never rewritten into a summary; (recall-entry N) reads any of them back word for word, and /evict makes room when you ask. The idea behind Context Language Models (Shao et al., 2026). Context and recall

<br clear="left"> <picture> <source media="(max-width: 479px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-mccarthy-light.png 1x"> <source media="(max-width: 479px)" srcset="resources/assets/readme/emblem-mccarthy-dark.png 1x"> <source media="(max-width: 1279px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-mccarthy-light-stack.png 2.62x"> <source media="(max-width: 1279px)" srcset="resources/assets/readme/emblem-mccarthy-dark-stack.png 2.62x"> <source media="(prefers-color-scheme: light)" srcset="resources/assets/readme/emblem-mccarthy-light-side.png 3.67x"> <source srcset="resources/assets/readme/emblem-mccarthy-dark-side.png 3.67x"> <img align="left" alt="John McCarthy, who made Lisp, drawn in cells" src="resources/assets/readme/emblem-mccarthy-dark.png"> </picture>

Rewrites itself in Lisp

"Its programs are in the same format as its data." (John McCarthy, 1984). Code is data, so a program can rewrite itself while it runs. The model's one tool, eval, evaluates Lisp in the running Nodecode: what it defines runs at once and is kept, one file per definition, committed with git, loaded at every start. Missing a tool? It writes one. Eval and the layer

<br clear="left">

One organism, every client

The gateway is the local server every client attaches to: the terminal, a browser tab (nodecode web), your phone (/link on), bots in Discord, Telegram and Slack, and programs (nodecode rpc). They all talk to the same running Nodecode, so a tool it writes in one is there in all of them.

On Linux and macOS the background gateway is on by default: it keeps Nodecode running with no shell open and starts it at login. nodecode gateway shows its state. On Windows, keep nodecode serve open in a terminal. See The gateway.

To put it in a chat room:

nodecode gateway setup discord    # or telegram, slack

It walks one channel from the bot's token to a connected bot. The token stays in a private file or an environment variable, never in the config, and the bot answers only the channels and people you allow.

Fewer tokens, same games won

<picture> <source media="(max-width: 600px) and (prefers-color-scheme: light)" srcset="resources/assets/readme/bars-mobile-light.svg"> <source media="(max-width: 600px)" srcset="resources/assets/readme/bars-mobile-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="resources/assets/readme/bars-light.svg"> <img alt="Tokens to finish ARC-AGI-3, all 25 public games. Claude Opus 5.5, both scoring 100: Nodecode 181M tokens ($124), Claude Code 393M ($210). GPT-6.1 Sol, both winning all 25 games: Nodecode 58M ($33), Codex CLI 172M ($43)." src="resources/assets/readme/bars-dark.svg" width="100%"> </picture>

On the same model, Nodecode won every public ARC-AGI-3 game with 54% fewer tokens than Claude Code (41% less cost) and 66% fewer tokens than the Codex CLI (24% less cost). The write-up: What ARC-AGI-3 costs, Foresight Labs FL-2026-006.

<details> <summary><b>How the runs were measured</b></summary> <br>

The 25 public ARC-AGI-3 games, 183 levels, each scored with the official scorecard rule, all harnesses at xhigh reasoning. A token is every token put through the model: input, cache reads, cache writes and output. Cost uses each provider's official prices of 11 October 2026. Where a game was played more than once, the best run counts, for every harness alike. On Claude Opus 5.5, Nodecode and Claude Code both score 100. On GPT-6.1 Sol, both win all 25 games; the Codex CLI, playing through Prime Intellect's published game adapter, scores 99.9 to Nodecode's 99.5 because it took fewer actions. The GPT-6.1 Sol runs reached the model through a LiteLLM gateway and a third-party API relay.

</details>

Cells that ship with it

Turn one on with Space in /cells, or nodecode add nc://NAME:

| Cell | What it does | | --- | --- | | discord · telegram · slack | Talk to Nodecode through a bot | | web · link | Use it in a browser tab with nodecode web; open that page from anywhere with /link on | | chrome | Drive Chrome, with the companion extension | | websearch | Web search and page fetch, no key needed | | mcp | Tools from the MCP servers you list in the config | | cron | Prompts that run on a schedule | | goal | A session keeps taking turns until its goal's check passes | | team · board | Several sessions work one task in a shared folder; sessions on a board read each other's posts | | prs | Pull requests ranked and reviewed minutes after each push | | experience | Learns from each turn: reflections and recaps | | context | The always-visible context-editing skill | | cyber-security | The latest breaches and the fix for each, re-scanned every 6 hours; checks your server and website and walks you through patching | | guard | Refuses risky shell commands before they run | | qa | Anonymous usage counts, one page a week, sent only if you say so |

More, from Nodecode and the community, are at nodecode.ai/cells. To write your own, ask Nodecode, or read the Cell API and src/CELLS.md.

More

<details> <summary><b>What does it cost?</b></summary> <br>

Nodecode is free, under the MIT license. It runs on your own provider key and the provider bills you; /usage reports the spend.

</details> <details> <summary><b>Which models?</b></summary> <br>

Any provider that speaks one of four wire dialects: openai-completions, openai-responses, anthropic or google. /models connects a provider from the models.dev catalog, saves its key in ~/.nodecode/auth.json and picks its model; a local server works through base_url. Its Backup tab lists the models a failing turn moves on to. See [Model

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars158
CategoryAI
Updated4h ago
Forks20

Languages

Common Lisp

Trust signals

95/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low