Skip to main content

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

Portlight

CI PyPI npm MIT License Landing Page Handbook

Portlight is a trade-first maritime strategy game for the terminal. You run a captain, a hold, and a reputation across twenty ports. Prices move when you sell. Contracts want provenance. Brokers and warehouses change what a voyage is worth. Four victory paths score the career you actually built — not the one you picked on day one.

Play in the TUI (portlight tui) or the CLI. Same save. Same world.

Install

pip install "portlight[tui]"

Python 3.11+. The tui extra pulls Textual. CLI-only: pip install portlight.

No Python? The npm launcher fetches the GitHub Release binary:

npx @mcptoolshop/portlight

Print-and-play PDF kit: pip install "portlight[printandplay]".

Play

portlight tui

If there is no save, the TUI lists slots and New. Pick a captain type. Then:

Key What it does
D Dashboard (career / milestones live here)
M / B / S Market · buy · sell
G / A Sail picker · advance a day
H Harbor: provision, repair, hire; also work, fire, hunt. At sea, H hunts.
K Contracts. K again to accept or abandon.
W Infra. W again to lease, deposit, withdraw, open a broker, buy a license, or draw credit.
P Port. P again for shipyard (buy hull, upgrades, dry-dock).
F Fleet. F again to board, dock, transfer, or sell a prize hull.
V World map
? Help

CLI is the same game with typed commands:

portlight new "Captain Hawk" --type merchant
portlight market
portlight buy grain 10
portlight sail al_manar
portlight advance
portlight sell grain 10
portlight tui

portlight --json status dumps a stable dict (captain, port, cargo, market, routes, board) with no ANSI. portlight saves lists slots.

Guided first session: docs/START_HERE.md. Handbook: https://mcp-tool-shop-org.github.io/portlight/handbook/.

Why Portlight

Most trading games flatten trade into a number that goes up. Portlight treats trade as a commercial discipline:

  • Prices react to your trades. Dump grain and the local price crashes.
  • Ports have economic identities. Porto Novo grows grain. Silk Haven exports silk. That is structure, not noise.
  • Voyages carry risk. Storms, pirates, inspections, seasons. Provisions, hull, and crew are real costs.
  • Contracts require proof. Right goods, right port, tracked provenance, real deadlines.
  • Infrastructure changes timing. Warehouses stage cargo. Brokers improve the board. Licenses open premium access. All five live regions have broker offices and a regional charter.
  • Reputation is four axes. Commercial trust, customs heat, regional standing, underworld. They open and close doors independently.
  • The game reads what you built. Milestones and four victory paths score evidence, not a menu choice.

The world

Five regions. Twenty ports. Forty-three routes.

Region Ports Character
Mediterranean Porto Novo, Al-Manar, Silva Bay, Corsair's Rest Grain, timber, spice. Safe starting waters.
North Atlantic Ironhaven, Stormwall, Thornport Iron, weapons, garrison trade. Strict inspections.
West Africa Sun Harbor, Palm Cove, Iron Point, Pearl Shallows Cotton, rum, pearls. Cheap provisions.
East Indies Jade Port, Monsoon Reach, Silk Haven, Crosswind Isle, Dragon's Gate, Spice Narrows Silk, spice, porcelain, tea. Highest margins. Monsoon risk.
South Seas Ember Isle, Typhoon Anchorage, Coral Throne Pearls, medicines. Remote endgame waters.

Eighteen goods (including pelts and contraband). One hundred thirty-four named NPCs. Four pirate factions with eight live named captains. Seasonal weather. Festivals, superstitions, crew morale.

Nine captains

Captain Home Edge Trade-off
Merchant Porto Novo Better prices, trust grows fast Heat penalties doubled
Smuggler Palm Cove Black market, contraband Higher heat, more inspections
Navigator Silva Bay Faster ships, longer range Weaker initial standing
Privateer Stormwall Naval combat, boarding Poor merchant reputation
Corsair Corsair's Rest Combat + trade Master of none
Scholar Monsoon Reach Information, better contracts Low capital, fragile
Merchant Prince Al-Manar High starting capital Higher fees, pirate target
Dockhand Crosswind Isle Cheap crew Lowest starting capital
Bounty Hunter Crosswind Isle Combat, faction standing Poor prices, distrusted

portlight new "Name" without --type opens the roster. Bounty Hunter is not a flavour label: portlight bounty accept <id> then portlight bounty hunt <id> forces the named captain. Ghost ids are gone; the board only lists live PIRATE_CAPTAINS.

Systems

Economy — Scarcity pricing, flood penalties, market shocks, regional import/export identity.

Voyages — Multi-day travel. Weather, pirates, inspections. Named pirate duels prefer an active bounty when one matches the waters.

Contracts — Seven families, twenty-four templates. Trust and standing gates. Provenance-validated delivery.

Reputation — Regional standing, commercial trust, customs heat, underworld connections.

Combat — Personal stance triangle (thrust / slash / parry), melee and ranged, fighting styles (TUI Y fires the style special). Naval: broadside, close, evade, rake, flee. Prize capture with a real fleet hull.

Infrastructure — Three warehouse tiers. Broker offices: Local + Established in all five regions. Seven licenses (five regional charters including North Atlantic and South Seas, plus two global). Real upkeep.

Finance — Hull, cargo, and contract-guarantee insurance. Three credit tiers with interest and default.

Fleet — Multiple hulls, dock/board at the same port, cargo transfer, eighteen upgrades.

Career — Twenty-seven milestones, seven profile tags, four victory paths. Dashboard shows the ledger; day-advance toasts newly completed beats.

Victory paths

  • Lawful Trade House — High trust, premium contracts, clean reputation, infrastructure breadth.
  • Shadow Network — Luxury margins under heat, survived seizures, still ahead.
  • Oceanic Reach — East Indies standing, distant infrastructure, long-haul mastery.
  • Commercial Empire — Multi-region warehouses, brokers, licenses, financial leverage.

Print-and-play

pip install "portlight[printandplay]"
portlight print-and-play

Kit-sized PDF (portrait after the landscape board, silver track 0–100). Rulebook: docs/PRINT_AND_PLAY_RULES.md.

Command groups

Run portlight guide in-game, or docs/COMMANDS.md.

Group Commands
Interface tui, saves, --json
Trading market, buy, sell, cargo
Navigation routes, sail, advance, port, provision, repair, hire, fire, crew, hunt, work
Combat duel, fight, encounter, naval, capture, spare, take-all, bounty (list / accept / hunt / claim)
Equipment inventory, equip, merchant, sell-gear, armory, train, equip-style, maintain, smith, field-repair, injuries, learn-skill
Fleet shipyard, drydock, fleet, dock, board, transfer, rename, upgrade
Contracts contracts, accept, obligations, abandon
Companions recruit, dismiss-companion, party
Infrastructure warehouse, office, license
Finance insure, credit
Career captain, reputation, milestones, status, ledger
World map
System save, load, guide, print-and-play

Quality

  • 1,853 tests
  • 14 cross-system invariants under 9 compound stress scenarios
  • Balance harness: 7 policy bots, 7 scenario packs
  • Save format v12 with a full migration chain
  • Ruff-clean. Python 3.11 / 3.12 / 3.13

Security

Local-only game. No network during play. Saves to saves/ and reports to artifacts/ as JSON. No secrets, no telemetry, no elevated permissions. See SECURITY.md.

Development

pip install -e ".[dev]"
pytest
ruff check src/ tests/

verify.sh runs tests, ruff, a wheel build, and a smoke-import of the built artifact.

License

MIT


Built by MCP Tool Shop

Metadata

Release files for portlight 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for portlight 2.1.0
File Size Uploaded
portlight-2.1.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for portlight 2.1.0
File Interpreter ABI Platform
portlight-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / portlight-2.1.0.tar.gz

Download URL portlight-2.1.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
d554f333dd0f182459148e76aaeae5b2281d9adea4a5fc0e42108b6563b8c100
BLAKE2b-256 checksum
How to use checksums
48ad56b0b481acb0b76eede804a8a330a93a8970b16ed7ec66ba83fbb4573245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release files / portlight-2.1.0-py3-none-any.whl

Download URL portlight-2.1.0-py3-none-any.whl
Size 565.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9da3fb6a8f968958e7f19fad1e2f54deb84c8716536762fa2aca383d91d197dd
BLAKE2b-256 checksum
How to use checksums
271a677df72bacd2a77fd640bf3bb4258a6e197740499f11c4ca2184111e1457
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page