Install

The fastest way to get Open Interpreter is the install script. It downloads the right binary for your platform and puts interpreter on your PATH.

macOS / Linux
curl -fsSL https://openinterpreter.com/install | sh
Windows (PowerShell)
irm https://openinterpreter.com/install.ps1 | iex

After it finishes, restart your shell and run:

interpreter --version

System requirements

ItemMinimum
Operating systemmacOS 12+, Ubuntu 20.04+/Debian 10+, or 64-bit Windows 10/11
RAM4 GB (8 GB recommended)
Git2.23+ if you want the built-in PR helpers

Updating

Open Interpreter checks for updates in the background and stages new releases automatically. To update right now:

/update

Run it from inside a session, or rerun the install script.

DotSlash

Releases include a DotSlash descriptor named interpreter. Commit it to a repo and every contributor runs the same version of the binary, no matter their platform.

Build from source

You only need this if you want to develop on the CLI itself.

Clone the repo
git clone https://github.com/openinterpreter/open-interpreter.git
cd open-interpreter/codex-rs
Install the Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
rustup component add rustfmt clippy
Install workspace helpers
cargo install just
cargo install --locked cargo-nextest
Build and run
cargo build
cargo run --bin interpreter -- "explain this codebase to me"

The root justfile has the everyday workflow shortcuts:

just fmt
just fix -p <crate-you-touched>
just test

Avoid --all-features for routine local runs. It bloats target/ and slows the build down for little benefit. Use it only when you specifically need full feature coverage.

Verbose logging

Open Interpreter is written in Rust and honors the RUST_LOG environment variable.

The TUI defaults to RUST_LOG=codex_core=info,codex_tui=info,codex_rmcp_client=info and writes logs to:

~/.openinterpreter/log/interpreter-tui.log

Tail it in another terminal while you work:

tail -F ~/.openinterpreter/log/interpreter-tui.log

For a single run, override the directory with -c log_dir=...:

interpreter -c log_dir=./.interpreter-log

interpreter exec defaults to RUST_LOG=error and prints messages inline, so you do not need a separate log file.

See the RUST_LOG reference for the full filter syntax.

Edit on GitHub