Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/0x-unkwn0wn/simterm/llms.txt

Use this file to discover all available pages before exploring further.

Simterm is an open-source Rust framework for building immersive terminal-based games and interactive command-line campaigns. The engine handles gameplay mechanics, state transitions, terminal rendering, and a realistic POSIX shell emulation — you provide the story, targets, and narrative in external RON data files without touching any Rust code.

Quickstart

Run the sample campaign and create your first custom experience in minutes.

Building Campaigns

Learn how to author missions, targets, filesystems, commands, and endings.

Command Reference

Explore every built-in command available to players in a Simterm session.

Engine API

Embed or extend the simterm-engine library crate in your own frontend.

What is Simterm?

The framework separates engine mechanics from campaign content. The engine and terminal frontend live in Rust; every mission, host, vulnerability, file, ending, and theme lives in a .ron file you distribute separately. This means:
  • No recompilation to ship a new campaign or update story content.
  • No Rust required to author a complete, playable experience.
  • Full creative control: any fiction or scenario that benefits from a rich terminal interface.
simterm-engine (library) + campaign.ron (data) → terminal experience

Key Features

Data-Driven Campaigns

Missions, targets, vulnerabilities, VFS, achievements, and narrative all live in RON files loaded at runtime.

Virtual Filesystem

Author file trees with loot, credentials, hash puzzles, and reversible binaries for post-exploitation gameplay.

Declarative Commands

Define campaign verbs that set flags, adjust trace, unlock achievements, or complete missions — without writing Rust.

POSIX Shell Emulation

uname, ps, netstat, env, grep, and more are synthesized automatically from your host definition.

Multi-Host Networks

Build pivot-based missions spanning multiple connected hosts with token-based lateral movement.

Semantic Validation

--doctor catches dangling references, unreachable content, bad ranges, and collision warnings before your players do.

Getting Started

1

Install Rust

Simterm requires Rust stable (edition 2021). Install it from rustup.rs.
2

Clone the repository

git clone https://github.com/0x-unkwn0wn/simterm.git
cd simterm
3

Run the sample campaign

cargo run -p simterm
4

Create your own campaign

Copy the sample and start editing:
cp -r examples/sample_campaign campaigns/my_campaign
cargo run -p simterm -- --campaign ./campaigns/my_campaign
The bundled sample campaign (examples/sample_campaign) demonstrates a simulated hacking scenario. It exists to teach the data format — your campaign can model any terminal-native fiction.

Build docs developers (and LLMs) love