Getting Started

Build the current codebase, run the CLI, and launch an agent quickly.

These steps match the repository as it exists now.

1. Build the CLI first

The infotheory binary is feature-gated, so the reliable first build is:

git clone --recursive https://github.com/turtle261/infotheory
cd infotheory
cargo build --release --features cli --bin infotheory

That gives you the current CLI surface under ./target/release/infotheory.

2. Understand what ships by default

The crate defaults already include the main backend families, but the CLI itself still needs the cli feature. VM-backed environments are a separate optional build because they depend on the Nyx stack and Linux/KVM-oriented infrastructure.

For most documentation and benchmarking work, start with the native CLI build above and only add VM support when you explicitly want Nyx-backed environments.

3. Run a few primitives

./target/release/infotheory mi file1.txt file2.txt 8
./target/release/infotheory nte file1.txt file2.txt --rate-backend ctw
./target/release/infotheory ncd a.bin b.bin --compression-backend rate-ac --rate-backend fac-ctw --method 16

The CLI can switch backend families without changing the outer command shape. That is the main idea to keep in mind when reading the rest of the docs: most of the tooling is one binary with backend selection rather than many separate tools.

4. Launch an agent

The agent entrypoint is:

./target/release/infotheory aixi aixi_confs/ui_coin_flip.json

Use planner: "mc-aixi" for the tree-search planner or planner: "aiqi" for the return-prediction planner. The same command is used for both.

See Agents for the planner-specific details and Benchmarks for reproduction against PyAIXI and MC-AIXI C++.

5. Python bindings exist too

The repository also ships a Python extension crate. That matters for benchmarking, scripting, and parity checks with external baselines, even if the Rust CLI remains the primary interface.