An EVM in your terminal
@tevm/cli is an in-process Ethereum command line — a full EVM inside the CLI process, no
Docker container, no background node, no anvil to babysit. tevm-run executes TypeScript
scripts with the Tevm Solidity bundler already wired in.
Try the playground →
@tevm/cli runs a full EVM inside the
CLI process — no Docker container, no background node, no anvil to babysit — and
exposes node actions, contract calls, state manipulation, and Solidity compilation as
ordinary shell commands.
tevm-run is its sibling: a Bun-based runner that executes a TypeScript file with the
Tevm Solidity bundler already wired in, so a script can import a .sol file directly.
npm install --global @tevm/cli
tevm session mainnet --fork https://mainnet.optimism.io --json
tevm get-balance --address vitalik.eth --session mainnet --run --jsonWhy it exists
Most Ethereum tooling makes you choose between a REPL and a daemon. Tevm CLI is neither:
- No process to manage. Every command spins up an EVM in-process, applies your session's saved state, runs, and exits. There is nothing to start or kill.
- Persistent, named sessions.
tevm session <name>writes a fork URL, an optional pinned block, and accumulated state to disk. Subsequent commands reload it, so a sequence ofset-code,call,minebehaves like one continuous chain. - Forks that are reproducible. Pin a block with
--fork-blockand the same command returns the same answer next week. - Typed JSON for agents and CI.
--jsonswitches every command to a stable{ ok, command, result, session }envelope, and suppresses the interactive Ink editor so a script never hangs waiting for a keystroke. - Solidity without a framework.
tevm compile,tevm sol, andtevm deploytake you from a.solfile to a return value without afoundry.tomlor ahardhat.config.
Two packages
| Package | Binary | Runtime | Use it for |
|---|---|---|---|
@tevm/cli | tevm | Node.js ≥ 24 | Shell-driven EVM work: forks, calls, state, compilation, a local JSON-RPC server. |
tevm-run | tevm-run | Bun ≥ 1.0 | Executing a TypeScript script that imports Solidity contracts directly. |
Where to go next
- Getting started — install, first session, first call.
- Sessions and forks — the model that makes the CLI stateful.
- Scripting with JSON output — the
--jsonenvelope, for CI and agents. - CLI reference — every command, with a runnable example and its real output.
- How this repo relates to Tevm — where
@tevm/clisits among the Tevm repos.
Explore the commands
Pick a command to watch it run:
Execute an eth_call against a fork or a saved session — no wallet, no gas.
The Tevm family
This site is one of the *.tevm.sh docs sites — jump between them:

