π NMS Copilot
A real-time galactic copilot for No Man's Sky, built in Rust.
Search planets by biome. Plan warp routes through the stars. Convert portal glyphs with emoji. Watch your save file live as you play β and let an AI explore the galaxy with you.
[Euclid β 644 planets β 293 systems] π find --biome Lush --nearest 5
# Planet Biome System Distance Portal Glyphs
1 Metok-Kalpa Lush Gugestor Colony 0 ly π
ποΈπποΈππ³π¦πππΊππ
2 Sushimi Lush Esurad 18K ly π
ποΈππ¦ππβ΅ππ¦πππ
3 (unnamed) Lush Ogsjov XV 42K ly π
ππποΈππ³πππ
πΊππ¦
4 (unnamed) Lush Rastarc-Zukk 67K ly π
π¦πποΈππ
π¦πππΊππ
5 Dipadri Grosso Lush Ipswic 91K ly π
ππποΈππ³πππ
πππ
What is this?
NMS Copilot reads your No Man's Sky save files β either the raw binary format (save.hg) directly or exported JSON β and builds a live, in-memory model of every system, planet, and base you've discovered. It's not a save editor. It's a queryable atlas of your personal galaxy.
Two ways to use it:
| Interface | What it does |
|---|---|
CLI (nms) |
One-shot commands for quick lookups and scripted pipelines |
REPL (nms-copilot) |
Interactive session with persistent state, built-in MCP server for AI co-exploration |
The copilot watches your save directory for changes. When you warp to a new system, scan a planet, or build a base, it detects the auto-save and updates the model automatically. The built-in MCP server shares the same live model, so your AI copilot knows where you are right now.
Use --headless to run just the MCP server without the REPL (e.g., for Claude Desktop integration).
Features
- Native save file parsing -- reads
save.hgdirectly (LZ4 block decompression + JSON key deobfuscation), no export step needed - Planet search -- find planets by biome, distance, discoverer, infested status, or any combination
- Route planning -- nearest-neighbor and 2-opt TSP solvers with warp-range hop constraints
- Portal glyph converter -- fully multidirectional: hex, emoji, coordinates, signal booster, galactic address
- Interactive galaxy map -- full-screen TUI with galaxy, region, and local zoom levels
- Live file watching -- detects auto-saves while you play and updates the model in real time
- rkyv cache -- zero-copy serialization for near-instant startup after the first load
- Multi-save support -- switch between save slots (up to 15)
- Export & import -- JSON/CSV export of filtered data; CSV import of community coordinates
- MCP server -- stdio and HTTP transports for AI copilot integration (Claude Desktop, etc.)
- Configurable color themes -- ANSI terminal themes via
~/.nms-copilot/config.toml - Shell completions -- bash, zsh, fish, powershell, elvish
- Multi-galaxy routing -- per-galaxy spatial indexes across all 256 NMS galaxies
Portal Glyphs
NMS Copilot renders portal addresses as emoji throughout all interfaces:
Portal Glyphs
| Index | Name | Hex | Emoji | Unicode |
|---|---|---|---|---|
| 0 | Sunset | 0 | π | U+1F305 |
| 1 | Bird | 1 | ποΈ | U+1F54A U+FE0F |
| 2 | Face | 2 | π | U+1F611 |
| 3 | Diplo | 3 | π¦ | U+1F995 |
| 4 | Eclipse | 4 | π | U+1F31C |
| 5 | Balloon | 5 | π | U+1F388 |
| 6 | Boat | 6 | β΅ | U+26F5 |
| 7 | Bug | 7 | π | U+1F41C |
| 8 | Dragonfly | 8 | π¦ | U+1F98B |
| 9 | Galaxy | 9 | π | U+1F300 |
| 10 | Voxel | A | π | U+1F54B |
| 11 | Whale | B | π | U+1F40B |
| 12 | Tent | C | βΊ | U+26FA |
| 13 | Rocket | D | π | U+1F680 |
| 14 | Tree | E | π³ | U+1F333 |
| 15 | Atlas | F | πΊ | U+1F53A |
Convert freely between formats:
# Emoji β coordinates
# Hex glyphs β coordinates
# Signal booster β emoji glyphs
# Galactic address β everything
Commands
All commands below work with both the CLI (nms) and the REPL (nms-copilot), unless noted otherwise. The CLI accepts --save and --slot flags; the REPL uses its pre-loaded model.
Search
Find planets matching any combination of criteria, sorted by distance:
Route Planning
Plan optimal routes through the galaxy with warp range constraints:
Info & Details
Coordinate Conversion
Export & Import
Listing Data
Browse reference data and model collections:
Shell Completions
Multi-Save Support
Interactive REPL
The REPL (nms-copilot) supports all the commands above plus session management and an interactive galaxy map:
)
# Planet Biome Distance Portal Glyphs
)
)
)
# Base System Planet Biome
()
REPL-only commands:
| Command | Description |
|---|---|
set position <base> |
Set reference position for distance calculations |
set biome <biome> |
Set default biome filter for find/route |
set warp-range <ly> |
Set default warp range for route planning |
reset [position|biome|warp-range|all] |
Reset session state |
status |
Show current session state |
map |
Interactive galaxy map (galaxy/region/local zoom) |
Architecture
NMS Copilot is a Rust workspace of focused crates:
nms/
ββ nms-core Types, enums, address math, glyph emoji
ββ nms-save Raw binary save parser (LZ4 + XXTEA + key mapping)
ββ nms-compat Format adapters (NomNom save format detection)
ββ nms-graph petgraph spatial model, R-tree index, routing
ββ nms-query Shared query engine (find, route, show, stats)
ββ nms-watch File watcher, delta computation, live updates
ββ nms-cache rkyv zero-copy serialization for fast startup
ββ nms-cli clap one-shot CLI (the `nms` binary)
ββ nms-copilot reedline interactive REPL + MCP server (the `nms-copilot` binary)
The data flows in one direction:
save file β parser β galaxy model β query engine β CLI / REPL / MCP
β
file watcher (live updates)
The galaxy model is the core: a petgraph of systems with an R-tree spatial index, incrementally updated as the game auto-saves. All three interfaces share the same query engine β no duplicated logic.
How Save Parsing Works
NMS saves are LZ4 block-compressed JSON (not a proprietary binary format). The pipeline:
- Read sequential 16-byte block headers (magic
0xFEEDA1E5) + LZ4 payloads - Decompress and concatenate all blocks
- Deobfuscate JSON keys using MBINCompiler's
mapping.json - Deserialize into typed Rust structs via serde
No encryption on modern saves (format 2002+, post-Frontiers). The only crypto is XXTEA on the small metadata file (mf_save.hg), used for integrity verification.
MCP Server
The REPL includes a built-in MCP server for AI co-exploration. It starts automatically on http://127.0.0.1:3000 and shares the same live model as the REPL.
For headless operation (e.g., Claude Desktop integration):
The MCP server exposes all query capabilities as tools β your AI copilot can search planets, plan routes, convert coordinates, and track your position as you play.
Installation
Or build from source:
Requirements
- Rust 1.91+ (2024 edition)
- No Man's Sky save files (Steam, GOG, or Mac)
- A terminal with emoji support (most modern terminals)
Acknowledgements
NMS Copilot builds on a decade of community reverse engineering. Special thanks to:
- libNOM.io / NomNom by zencq β the most complete save format implementation
- MBINCompiler by monkeyman192 β game data decompilation and key mapping
- Chase-san β the cleanest minimal save decoder
- MetaIdea/nms-savetool β definitive format 2001 encryption documentation
- NMSCD β community developer tools and coordinate converters
- The NMS Modding Discord community β collective format knowledge
- Hello Games β for building a universe worth exploring π
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
"The universe is a pretty big place. It's good to have a copilot." ππ¦
