o7 Debrief icon o7 Debrief

What it does

Everything o7 Debrief does, card by card. Every figure traces back to a real journal entry; the example output below shows the finished debrief.

📡

Live background watcher

Follows the active journal in the background and generates a debrief automatically when you shut the game down. A session that ends in a crash is not debriefed by itself; Debrief my last session still covers it.

🕒

Debrief any time

Cold one-shot mode reports your last session or your whole history to date, even if the app was not running while you played.

📊

Real numbers only

Every credit, jump and scan maps to a real entry in your journal, so the figures are verifiable and never guessed, inferred or padded. A figure the journal never stated is never printed as zero: where the slot must hold something it says there was no reading; where nothing has to occupy it the figure is simply left out.

💵

What you actually made

The credit change is the difference between the balances the journal states at your first login of the session and your last, so a rebuy, an outfitting bill or a hold full of tritium between them counts against you exactly as it did in game. A session that ended poorer by its last login says so. The journal states no balance after that login, so money spent after it is not in the change.

📊

What the priced events came to

When the journal states only one balance it can state no change; saying so and stopping there tells you nothing. Beside the balance sits the total of every event the journal does price, income less outgoings, in a card of its own that says plainly it is not the balance change.

🕓

A balance that says its age

The journal states your balance when you log in and never again, so on a long session that figure is what you had when you sat down. The report prints the moment it was read beneath it, rather than letting a reading hours old pass for a current one.

🔧

Outfitting and the shipyard

Modules and ships bought and sold, counted and priced on each side rather than netted off, so a refit reads as the two things it was. Ship transfers get their own line, since a transfer buys nothing and still costs. Each one is a row in the log naming the item and the price.

🗺

Distance travelled

The light years your ship covered, read from the distance each jump states. Your fleet carrier is measured too, worked out from where it arrived, since a carrier jump never records how far it came.

📄

Self-contained report

A session debrief is one self-contained file you can open in any browser or keep, plus a text version ready to paste onto Discord or Reddit.

📅

Dated where it matters

A log covering several days heads each day with its date, so a history report reading 15:15 above 11:48 is plainly two days rather than a broken sort. A single session shows no dates and keeps its narrow time column. Times are the journal's own UTC, shown unconverted and labelled.

📚

A history that stays readable

Years of play will not fit in one page, so the history debrief is a small set of pages: an index, a page per month and one shared stylesheet, opening from your own filesystem with no server and no scripts. It is rebuilt every time you quit and only the pages that actually changed are rewritten.

🎖

Honest rank reporting

Tier-ups show at once and fractional rank percentages settle at the next launch, because the journal only snapshots progress at startup.

🚀

Your ship, tracked

The header names your current ship and its type. A swap is logged as a session event naming the ship you left and the one you boarded; a purchase is logged naming the ship and what it cost.

🛸

Ship-launched vessels and fighters

Deploying, docking and losing the Nomad vessel or a fighter each appear as their own rows, naming the type from the journal loadout. Flying a fighter yourself is its own control mode; an NPC-crewed fighter leaves you in the ship.

📋

Missions and Operations

A completed mission names itself and the faction that issued it. An Operation also shows the Merc Coins it paid, totalled apart from your credits because they are a different currency.

🎯

Kills that name the ship

A bounty row names the ship you destroyed, whatever an NPC happened to be flying, so what you killed and what killed you both read as ship types.

⚠

Notices, not silent zeros

If the journal never carried a field a figure depends on, a Notices block names the event and the field rather than letting the figure read as zero. A balance that is not a usable amount is named there too rather than ending the debrief, as are journal lines that could not be read at all, so a report built from part of the journal says so.

☠

Deaths that stand alone

A death row names who died, the vehicle actually lost at that moment (an SRV, not the ship it launched from), the killer with their ship and squadron read from the targeting scan, then what the rebuy cost.

🛠

Every row says what you did

An engineering roll names the blueprint, the grade, the module and the engineer who applied it, so an evening of two hundred rolls reads as the work it was rather than two hundred identical lines. Applying an experimental effect is its own row and its own figure, because the journal reports it as a roll and it is not one. It reads in English too: the journal calls a module int_sensors_size5_class2 and the report calls it a 5D Sensors. Where the journal did not record something a row needs, the row says less rather than guessing.

💎

Material trading

Exchanges at the raw, manufactured and encoded traders are logged with both sides named, then counted in the Trade section. No credit figure is shown against them, because they cost no credits: you pay in materials.

🔄

Check for updates

Shortly after launch and once a day, the app asks GitHub anonymously whether a newer release exists; a Check for updates button on the home screen and a tray entry both do the same on demand. You choose Download, Skip this version or Later; it never downloads or runs anything without you choosing it.

🔒

Local-first

No cloud, no account, no telemetry. Your journal never leaves your machine and the app needs no administrator rights to install. Nothing listens either: the app opens no port and accepts no connection, so the only network call it ever makes is the update check going out.

Example output

An o7 Debrief history report showing the history header with its start, end, duration, route and systems visited; headline totals with the credit balance, the change beside it and the moment the balance was read; and the per-domain activity cards, among them Outfitting and Shipyard, an Engineering card split between modification rolls and experimental effects, plus a Fleet Carrier distance stating how many of its jumps the total covers

A debrief covering a commander's whole journal history. Open the full example report →

A history report's session log, with each day of play introduced by its own heading above the rows belonging to it, so times running backwards within a day and then jumping up again read as separate days rather than as a broken sort

A log covering several days heads each day with its date. A single session shows none and keeps the narrow time column.

The log section of a history report, showing a jump list linking every month in the history, newer and older links with the page position beside them and a row of category tabs each stating how many entries are on this page out of the whole history

Every month is one click away and every tab counts the whole history rather than the page.