Available now v0.3.0

v0.3.0

JavaScript toolkit.
Implementation is Common Lisp.

Clun runs TypeScript. Clun installs npm packages. Clun runs tests. Clun serves HTTP. Clun builds bundles. Commands and APIs follow Bun shape. The Clun implementation is not Node, V8, libuv, Rust, Zig, or C. JavaScript is only what you run.

The capability matrix shows Yes for every public row versus Bun, Node.js, and Deno (evidence-backed Yes / Partial / No). The matrix notes where Clun exceeds Bun.

Linux and macOS · x64 and arm64

Install

install.sh
curl -fsSL https://clun.f00.sh/install | sh
SHA-256 verified ~/.local/bin/clun clun --update INSTALL_VERSION pin

The installer verifies SHA-256. The installer installs to ~/.local/bin/clun. Use clun --update to update. After install, man clun matches live CLI help. The default install is the verified release boundary (now v0.3.0). Optional: INSTALL_VERSION, INSTALL_DIR, ADD_PATH=0 / ADD_PATH=1.

Implementation
Common Lisp only
Capability matrix
30 Yes · 0 Partial · 0 No
test262 pass list
26,018
Current test262 rate
92.38% current / 90% target met

What Clun is

Clun is one binary. The CLI and APIs follow Bun shape. The implementation is pure Common Lisp on SBCL. Clun is not a bridge to another engine.

Runtime & language

  • Execute .js, .mjs, .cjs, TypeScript, JSX, and TSX
  • TypeScript with erasable strip and structural typecheck (clun tsc). Bun has no built-in typecheck.
  • Node-compatible builtins surface (buffer, fs, path, crypto, child_process, and the rest of the pure-CL matrix)
  • Web APIs: fetch, URL, streams, AbortController, cookies, and related surfaces

Packages (npm-shaped)

  • clun install / add / remove / publish against the public npm registry
  • Bun-compatible install paths over pure-CL TLS with SRI-verified tarballs
  • Workspaces, monorepo filters, and topological concurrent scripts

Test, build, reload

  • Jest-compatible clun test (matchers, snapshots, async, concurrent files)
  • Production bundler: ESM/CJS/IIFE, code splitting, minification, loaders
  • --hot state-preserving reload; frontend dev server with HMR
  • Built-in clun fmt and clun lint. Bun has no built-in formatter or linter.
  • Single-file executables with optional signing

HTTP, data, secrets

  • Clun.serve HTTP/1.1. Streaming request and response bodies; WebSocket + Pub/Sub; no HTTP/2 server
  • CompressionStream / DecompressionStream (gzip/deflate)
  • Unified SQL (PostgreSQL, MySQL, embedded SQLite), Redis (including offline store), S3-compatible client
  • YAML modules, cookies, CSRF, CSS color, password hashing, encrypted secrets vault

Plugins & native code you bring

  • Bun-compatible Clun.plugin loaders (onResolve / onLoad / namespaces / virtual modules)
  • Optional host boundary for your .so, .dylib, or .node libraries.
  • Clun stays pure Lisp. make purity rejects CFFI in the Clun implementation.

Where Clun goes beyond Bun

  • Built-in formatter and linter
  • Structural TypeScript typecheck without a separate toolchain
  • Stronger Node-compat matrix coverage on several pure-CL surfaces
  • Redis offline store without an external server process
  • Secrets vault in pure Lisp (no Keychain / libsecret dependency for Clun itself)

Commands follow Bun shape

Use clun install, clun test, Clun.serve, and bun:test-style tests. Use the JavaScript packages and plugins you need. The process is Common Lisp.

hello.ts
const project: string = "Clun";
const runtime = "Common Lisp";

console.log(`${project} runs on ${runtime}`);

Capability matrix

Same public toolkit matrix as Bun 1.3.14 — Clun last. 30 full · 0 partial · 0 none. A green check means that runtime has the capability (evidence-backed Yes / Partial / No). Only Clun’s column marks where Clun exceeds the others.

Capability Bun1.3.14 Node.js26.5.0 Deno2.9.3 Clun0.3.0
Built-in core featuresEssential runtime capabilities
Node.js compatibilityRun code written for Node.js Partial Yes Partial Yesexceeds Bun on sqlite module.register registerHooks createSecurePair repl
Web Standard APIsfetch, URL, events, headers, and related APIs Yes Yes Yes Yesexceeds Bun pure-CL surface)
Native addonsN-API, FFI, or native C/C++ modules Yes Yes Yes Yes
TypeScriptExecute TypeScript without a separate build Yes Partial Yes Yesexceeding Bun (Bun has no typecheck)
JSXExecute JSX without external transformation Yes No Yes Yesexceeds Bun)
Module loader pluginsCustom import and require loaders Yes Partial Yes Yesexceed list/clear/priority/registerHooks and pure-CL register-cl-plugin (exceeds Bun.…
Built-in APIsPerformance and native APIs intended for application code
SQL database driversPostgreSQL, MySQL, and SQLite Yes Partial Partial Yes
S3 cloud storageFirst-party S3-compatible client Yes No No Yes
Redis clientFirst-party Redis API Yes No No Yesexceeds Bun)
WebSocket serverFirst-party server with connection handling and Pub/Sub Yes No Partial Yes
HTTP serverFirst-party server API Yes Yes Yes Yes
HTTP routerDynamic routes in the first-party server Yes No No Yes
Single-file executablesCompile an application into a distributable executable Yes Partial Yes Yesexceeds Bun compile)
YAMLBuilt-in parsing or module imports Yes No No Yes
Cookies APIMap-like request cookie handling Yes No No Yes
Encrypted secrets storageBun-shaped secrets with pure-CL AES-256-GCM vault Yes No No Yesexceeds Bun.secrets API; no Keychain/libsecret FFI)
Built-in toolingDeveloper workflow available from the primary command
npm package managementInstall, manage, and publish npm-compatible dependencies Yes Separate Partial Yes
BundlerProduction frontend and server bundles Yes No Partial Yesexceed surface, four-target receipts
Cross-platform shell APIShell scripting from application code Yes No No Yes
Jest-compatible test runnerTests with familiar Jest-style APIs Yes No No Yes
Hot reloadingReload a server while preserving connections Yes No Yes Yes
Monorepo supportWorkspaces and filtered package commands Yes Separate Yes Yes
Frontend development serverServe and transform browser entry points Yes No No Yes
Formatter and linterFirst-party source formatting and linting No No Yes Yesexceeds Bun which has no first-party fmt/lint
Built-in utilitiesConvenience APIs exposed without installing another package
Password and hashing APIsHigh-level password hashing and verification Yes Partial Partial Yes
String width APIMeasure terminal display width Yes No No Yes
Glob APIMatch filesystem paths with glob patterns Yes Yes Yes Yes
Semver APICompare and test semantic versions Yes No No Yes
CSS color conversionParse and convert CSS color formats Yes No No Yes
CSRF APIGenerate and verify CSRF tokens Yes No No Yes

✓ full support · ∼ partial · ✗ none. Snapshot checked July 16, 2026. Sources: Clun README, Bun 1.3.14, Bun source audit, Node.js 26.5.0, Deno 2.9.3. Ledger on GitHub. Capability status only. No speed claim.

Why Common Lisp

Common Lisp is a mature, industrial language: interactive by default, with a real condition system, macros that rewrite the language itself, and decades of production use. SBCL turns that into a high-performance native image. Clun uses that substrate for the whole product — engine, package manager, TLS, servers — so the interesting machinery is readable Lisp, not a stack of foreign runtimes.

One language, full stack

Lexer, parser, object model, modules, async, HTTP, and the package manager are Common Lisp. No C, Rust, Zig, or JavaScript appears in Clun’s own implementation path. make purity fails closed if foreign-library shortcuts creep in.

You still bring JS ecosystems

Your application code is JavaScript and TypeScript. Your dependencies come from npm. Loaders and plugins follow Bun’s plugin shape; native libraries you choose can load through a narrow host boundary. Clun stays pure Lisp; your project can still use the ecosystem you already know.

Auditable by construction

Dependencies for Clun itself are vendored pure-Lisp libraries, pinned in-tree. HTTPS for installs and clients uses Clun’s pure-CL TLS stack; CI runs make test-tls. The capability matrix is evidence with receipts, not a brochure.

Documents

Operator SOP and formal release memo (NASA layout). Same links as the repository README. Attach both PDFs to the GitHub Release when the version ships.

░▒▓████████████████████████████████████████████▓▒░
█▓▒░ C L U N · scene card · v0.3.0 ░▒▓█
████████████████████████████████████████████████████
█ ██████╗██╗ ██╗ ██╗███╗ ██╗ █
█ ██╔════╝██║ ██║ ██║████╗ ██║ JS/TS █
█ ██║ ██║ ██║ ██║██╔██╗ ██║ pure CL █
█ ██║ ██║ ██║ ██║██║╚██╗██║ Bun shape█
█ ╚██████╗███████╗╚██████╔╝██║ ╚████║ █
█ ╚═════╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ █
████████████████████████████████████████████████████
█ MIT · 2026-07-27 · Linux+macOS █
█ shared-memory workers · zero hollow stubs █
█ NASA SOP + release memo on the GitHub Release█
█ https://clun.f00.sh · github:f00-sh/clun █
████████████████████████████████████████████████████
 ░▒▓ curl -fsSL https://clun.f00.sh/install | sh ▓▒░

Source and evidence

Code, issues, and the capability matrix live on GitHub. That is where claims are proven and revised.

f00-sh/clun
Stars
Forks
Watchers
Open issues

Install Clun

curl -fsSL https://clun.f00.sh/install | sh

Installable release: v0.3.0.