v1.17.0 · Open source · Rust + V8 · MIT
One binary for JavaScript and TypeScript
Amber runs scripts, tests, servers, and agent tools from a single amber executable — with an opt-in capability sandbox and an honest, contract-tested compatibility surface.
$ curl -fsSL https://get.amberjs.com/install.sh | sh$ amber --versionamber 1.17.0$ amber eval "1 + 1"2- Stable contracts (G1–G69)
- 69Stable contracts (G1–G69)
- Node conformance fixtures
- 56/56Node conformance fixtures
- binary — run, test, serve, bundle, compile
- 1binary — run, test, serve, bundle, compile
- current release
- v1.17.0current release
Write it. Run it. Ship it.
Every snippet below uses a Stable surface. No config files, no plugins.
// hello.tsinterface Greeting { name: string;} const greet = ({ name }: Greeting): string => `hello from ${name}`;console.log(greet({ name: "Amber" })); $ amber run hello.tshello from Amber.ts and .tsx run directly. oxc strips types; stack traces point at your .ts lines. It does not type-check.
Everything is a subcommand
The amber CLI covers the daily loop. Each command below is Stable and has a written contract.
amber runStableRun a JS / TS file, with --watch and --inspect
amber testStableDiscover and run Jest-style tests
amber serveStableServe a fetch handler over HTTP or HTTPS
amber bundleStableBundle a module graph into one file
amber compileStableBuild a single-file executable for this host
amber installStableInstall package.json dependencies from npm
amber mcpStableExpose tools as an MCP stdio server
amber replStableInteractive shell
Compatibility, one contract at a time
Amber is not a Node.js clone. Each module below is Stable for the subset its contract describes — and the contract lists what is missing.
Node.js modules32
- CommonJS require
- fs
- fs.watch / fs.watchFile
- path
- events
- buffer
- os
- os.hostname
- os.networkInterfaces
- zlib (sync)
- zlib (async callbacks)
- util
- process
- crypto
- crypto cipheriv
- stream
- child_process (sync)
- child_process (async)
- child_process.fork
- url
- dns
- http (server)
- net
- querystring
- string_decoder
- assert
- timers
- readline
- tty
- vm
- diagnostics_channel
- async_hooks
Web platform15
- fetch
- URL & encoding
- Blob / File / FormData
- Events & channels
- Streams, compression, timers
- Web Crypto
- WebSocket (client)
- Workers
- atob / btoa
- ErrorEvent / onerror
- Clipboard (text)
- DOMParser
- Background Sync
- Cache Storage
- Service worker fetch
Runtime & agents5
- Capability sandbox
- Deterministic execution
- amber:ai
- WebAssembly streaming
- WinterTC baseline
56 / 56 conformance fixtures pass
tests/conformance/ runs small Node-style scripts — fs, streams, crypto, child_process, Express, Fastify, Hono and more — on every change. CI fails if any fixture fails or skips. Passing fixtures are a regression gate, not a claim of drop-in Node compatibility.
Read the scorecardReproduce it
$ cargo build --release$ AMBER_BIN=./target/release/amber \ ./tests/conformance/run_conformance.sh…Pass rate: 56/56 (100%)CI gate: PASS (>= 55 PASS, 0 FAIL, 0 SKIP)Four honest labels
Every capability on this site carries one of these. docs/CURRENT_SCOPE.md in the repo is the source of truth.
Pinned by a written contract and executable tests in CI. Limits are documented next to the API.
In the default build and useful, but the contract, diagnostics, or edge cases are still being tightened.
Code exists, but it is not a product promise until it is re-verified and graduated.
Deliberately out of scope today. Amber will fail closed instead of pretending.
What Amber does not do (yet)
Saying no clearly is part of the contract. These surfaces are out of scope today.
- SharedWorker · module workers
new Worker(url, { type: 'module' }) throws.
- Push · Notification · Payment
Push subscription rejects. These browser surfaces are deferred.
- ClipboardItem
clipboard.read / write reject with an Error naming ClipboardItem.
- http client · Agent · https · http2
Use the Stable Web fetch for outbound HTTP. Only the http server subset is Stable.
- Streaming zlib · brotli
createGzip / createDeflate families, brotli and zlib.constants are not implemented.
- Type-checking
TypeScript is transpile-only. Run tsc --noEmit in CI if you need type errors.
- fs.glob · fs.cp · fs.opendir · fs.statfs
Not implemented; also no fs.promises.watch.
- Parallel tests · cross-compile
amber test --parallel exits 2. amber compile only targets the host OS.
- npm workspaces · lifecycle scripts
amber install does not run scripts, link .bin, or read yarn / pnpm lockfiles.
About performance numbers
Amber does not publish performance claims right now. Any future number will ship with the commit, exact command, hardware, and correctness checks needed to reproduce it.
Install amber and run something.
Prebuilt archives for macOS, Linux, and Windows, or build from source with Cargo.