Skip to main content

Star Freight — space merchant captain RPG. Five civilizations. One life.

Project description

日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)

Star Freight — Trade. Decide. Survive.

CI License Landing Page

Star Freight

You were a military pilot. Then you were a disgrace. Now you are a captain with a bad ship, no standing, and a star system that was already moving before you got here.

Star Freight is a text-first tactics merchant RPG about hauling freight through a politically fractured star system. Five civilizations. One economy. Four truths that won't let you play the same life twice.


The game

You dock at stations where the culture changes how you negotiate. You pick routes where the terrain changes how you fight. You hire crew who change what you can do, what you can access, and what you owe. You take contracts that look simple until the paperwork catches up, the shortage changes the price, or the cargo turns out to be evidence.

You are not the chosen one. You are a working captain trying to keep a ship moving while institutions seize cargo, shortages reshape routes, crews bring obligations aboard, and dangerous truths surface through ordinary work.

Every run becomes a different captain life. Not because you picked a class, but because your crew, your routes, your risks, and your standing shaped you into someone.

Why it feels different

Most RPGs stack systems side by side. Star Freight makes them transact.

Crew is binding law. Thal isn't a +10% repair bonus. Thal is why you can dock at Keth stations, why your ship has an emergency repair ability, and why you noticed the medical cargo didn't match the season. Lose Thal, and three systems lose capability at once.

Combat is a campaign event. You don't load into a fight and load back out. Victory writes salvage credits and faction heat. Retreat costs jettisoned cargo and a reputation as someone who runs. Defeat means seized cargo, injured crew, and a ship that limps to the nearest station at a premium. Every outcome changes your next trade decision.

Culture is social logic. The Keth don't just have different prices. They have a seasonal biological calendar that changes what gift-giving means, when pushing a deal is an insult, and when outsiders are confined to the outer ring. The Veshan don't just fight. They challenge — and refusing is worse than losing. Knowledge isn't a codex. It's reading the room.

Investigation emerges from life. You notice the medical cargo doesn't match the season because you've been hauling it. You find the manifest discrepancy because you salvaged a wreck. Your Keth crew member interprets the pattern because she remembers her debt to the same supplier. The conspiracy doesn't announce itself. You stumble into it by doing the job.

The world

Five civilizations share a star system called the Threshold.

The Terran Compact — Bureaucratic human government. They disgraced you. Getting back in means permits, patience, and swallowing pride. Safe markets, tight margins, heavy paperwork.

The Keth Communion — Arthropod collective on a biological calendar. Patient, observant, and devastating when offended. The best margins in the system if you understand the seasons. The fastest reputation collapse if you don't.

The Veshan Principalities — Reptilian feudal houses obsessed with honor and debt. They fight formally, trade directly, and remember everything. The Debt Ledger is not flavor. It's leverage.

The Orryn Drift — Mobile broker civilization. Neutral by policy, profitable by design. They trade with everyone, know everything, and charge for both. Cutting them out saves money. Losing their goodwill costs more.

The Sable Reach — Pirate factions, Ancestor tech salvagers, and people the Compact would rather forget. No law. No customs. No refunds. The highest risk and the highest reward in the system.

Three kinds of captain

The same world. Three different pressures.

Relief captain. Convoy discipline, trust-based access, public consequence. You keep people fed and get trapped by legitimacy. You fear delay and undercapacity.

Gray runner. Paper leverage, timing abuse, institutional risk. You make money by staying hard to read. You fear seizure and exposure.

Honor captain. Direct confrontation, house politics, reputation volatility. You solve problems face-to-face. You fear escalation and thin support networks.

These are not classes. They are what your choices turned you into.

Quickstart

# Clone and install
git clone https://github.com/mcp-tool-shop-org/star-freight.git
cd star-freight
pip install -e ".[tui]"

# Start a new game
starfreight new "Captain Nyx" --type merchant
starfreight tui

Controls: D Dashboard | C Crew | R Routes | M Market | T Station | J Journal | F Faction | B Buy | S Sell | G Travel | A Advance

Current state

Star Freight is a proved product, not a design concept.

Count
Stations 9
Space lanes 14
Trade goods 18
Crew members 5 + player
Contracts 9
Encounters 6
Investigation threads 4
Tests passing 2,200+

The vertical slice has passed all three proof criteria: Golden Path (continuous captain life), Encounter (three branches with different campaign state), and Economy (pressure sustains without collapsing into grind).

Three expansion packs are shipped: Working Lives (human texture), Houses, Audits, and Seizures (institutional pressure), and Shortages, Sanctions, and Convoys (managed scarcity).

Captain path divergence is proved: three postures produce different routes, different trade mixes, different combat profiles, different failure textures, and different captain identities.

Shipcheck scorecard

Gate Status Evidence
A. Security PASS SECURITY.md, offline-only, no secrets/telemetry
B. Errors PASS 2200+ tests, structured campaign validation
C. Docs PASS README (8 languages), CHANGELOG, LICENSE, HANDBOOK
D. Hygiene PASS CI (Python 3.11+3.12), v1.0.0, paths-gated workflow
E. Polish PASS Logo, translations, maritime term guard CI

Tech

Python 3.11+. Rich TUI. Crew binding, grid combat, cultural knowledge, investigation, and campaign orchestration. 2200+ tests.

No external AI dependencies. No cloud services. Runs on your machine.

Threat model: Star Freight is a single-player offline game. It touches only local save files. It does NOT access the network, collect telemetry, store credentials, or require user accounts. Dependencies are Typer, Rich, and Textual — all well-maintained, no native code. See SECURITY.md for the full policy.

The standing rule

When unsure what to build next:

  • Does it reinforce one of the four truths?
  • Does it sharpen a captain life?
  • Does it create a decision the player can feel?

If not, it can wait.


Star Freight is a game about moving through systems of power without ever fully belonging to them.

Built by MCP Tool Shop

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

star_freight-1.0.3.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

star_freight-1.0.3-py3-none-any.whl (608.2 kB view details)

Uploaded Python 3

File details

Details for the file star_freight-1.0.3.tar.gz.

File metadata

  • Download URL: star_freight-1.0.3.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for star_freight-1.0.3.tar.gz
Algorithm Hash digest
SHA256 128f87078da68660d1b045c9800be31328c916d09107b56c0261f498ef0e4feb
MD5 8af3b9aae878daa73f7690a40cabae10
BLAKE2b-256 f0610ab2e25ec205ec46de6da1f98a663569c0dd1f6edefd6d688e762b637ee8

See more details on using hashes here.

Provenance

The following attestation bundles were made for star_freight-1.0.3.tar.gz:

Publisher: publish.yml on mcp-tool-shop-org/star-freight

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file star_freight-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: star_freight-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 608.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for star_freight-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0d37f34ad7903a861b47c4d8835a39cf16b497fd9ae521e1d765dea40ab1ec26
MD5 177dfde89682284712fdc9b4c0de01d5
BLAKE2b-256 655a88713230bc3d76cf696433e9e99f4592f57a8c90ee40085b867c76034d34

See more details on using hashes here.

Provenance

The following attestation bundles were made for star_freight-1.0.3-py3-none-any.whl:

Publisher: publish.yml on mcp-tool-shop-org/star-freight

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page