LumiCode looks like a simple prompt, but there's a little more to it. Your results stay on the server rather than in your terminal. Every command works on the result you last ran. Your session leaves a record you can keep. Knowing how these pieces fit together explains most of what LumiCode does, and why it does it that way.
The three parts of the screen
A LumiCode session has three parts, from top to bottom:
The banner is pinned to the top. It shows where you're signed in and, when you're inside a command such as
/catalogor/rows, a trail of how you got there (a.k.a. “breadcrumbs”). Esc takes you back one step along that trail.The transcript fills the middle. Everything you run, and everything LumiCode answers, is written here and scrolls up as you go: query summaries, charts, lineage trees, Candela's replies.
The editor sits at the bottom, at the
❯prompt. It's where you type, and it grows as your query gets longer.

The transcript is output, not something you edit. To work on a query again, you bring it back into the editor wit the Up arrow, /recent or /history, rather than editing it where it appears in the transcript. This keeps the transcript an accurate account of what actually ran. What you can do is scroll it with the mouse and copy from it.
Browsing screens such as /rows, /group and /history open over the transcript while you use them. When you close one, what you found stays in the transcript.
One prompt, two languages
You type both SQL and LumiCode's own commands at the same prompt. LumiCode tells them apart by the first character: a line that starts with / is a command, and anything else is SQL for Luminesce. Completion follows the same rule, offering commands after a / and providers, fields and functions everywhere else.
Commands don't usually need you to remember options. Most ask you questions in turn, each with the likeliest answer already selected, so you can press Enter to accept it or Esc to go back one question. Once you know what you want, you can type the answers straight after the command instead, for example /chart bar TableName Columns, and the Up arrow repeats the whole thing.
The prompt has a third mode. After /ai, what you type goes to Candela, FINBOURNE's AI agent, until you go back to SQL with /sql or Esc at an empty prompt. Candela is available to some customers only.
The last result
Most of LumiCode's commands work on the last result: the result of the query you ran most recently. /rows, /stats, /group, /chart, /lineage, /save and /feedback all act on it, which is why none of them asks which query you mean.
Loading past results with /results makes them the last result, just as if the query had just run. After a multi-query, which has several results at once, these commands take the name of the one you want, for example /rows ByProvider, or ask you to choose.
Results stay on the server
When a query finishes, Luminesce keeps its full result on the server for a while. LumiCode shows you a summary and fetches more only when you ask for it. This is what lets LumiCode work with very large results without filling your terminal or your computer's memory:
/rowspages through every row, however many there are./groupand/statswork out their figures on the server, over every row, so totals are exact rather than worked out from what's on screen./savewrites every row to a file or to Drive.
Because the query runs on the server, LumiCode doesn't have to wait for it either. Pressing Esc while a query runs stops LumiCode waiting, and the query carries on. Ctrl+C is different: it cancels the query.
A query you stopped waiting for, or ran in an earlier session, isn't lost. /results lists your queries whose results haven't expired yet, and loads them without running the query again. Once a result expires, the query itself is still in /recent and /history, ready to run again.

The transcript is a record
As well as showing your session, LumiCode keeps a record of it: the queries you ran and the tables they returned, in order. /transcript writes that record to a Markdown file, or with /transcript html to a web page that keeps charts in colour and links clickable. It's a quick way to share what you found, put it in a presentation, or hand it to an AI assistant.
What's on screen and what's in the record are separate. /clear clears the screen but keeps the record, so /transcript still has everything. /clear transcript discards the record too. Neither one clears the last result.
A few things are kept out of the record on purpose. Help pages aren't recorded, and a secret you reveal with /cfg appears only in the panel you're working in, never in the transcript. /set transcript chooses what else the record keeps beside your queries.
Profiles: who and where you are
When you sign in with lumi login, LumiCode saves the sign-in as a profile: a LUSID domain and the way you sign in to it. You only sign in once, and the first profile you save becomes the active one, which lumi uses unless you say otherwise.
You can have several profiles, for example one for each domain you work in. Give each a name when you sign in, with lumi login --profile <name> --domain <domain>, and choose one when you start, with lumi --profile <name>. lumi config lists your profiles and marks the active one. To sign in to the same domain as a different user, use lumi login --switch-user.
Everything you do in a session uses that profile's domain and your permissions there. That's why two people can see different providers in /catalog, or different entries in /history: LumiCode shows what you're entitled to see.
Settings stay with you
/set changes how LumiCode behaves, and every setting is kept for your next session. A bare /set lists them all with their current values. Most are a matter of taste, but a few change how LumiCode works:
enterswaps what Enter does: run the query, or start a new line.mousedecides whether LumiCode or your terminal handles the mouse wheel and selecting text in the transcript.lineagedecides whether queries ask Luminesce for lineage, which/lineageneeds.history-caplimits how many rows/history,/api-historyand/access-historybring back.editorchooses the text editor that Ctrl+X opens.
For every setting and what it does, type /help set in LumiCode.