Ectype

AI Agent Ectype
|
rules
|
max context
selected
Pick a session on the left.

Settings

Agents shown in the list

Coding agents are on by default; chat apps are off until you enable them. The store path is where the agent keeps its sessions. Defaults are per operating system ( here): ~, %APPDATA% and $VARS are expanded, and the resolved path is shown under each field. An environment variable ($ECTYPE_…_HOME) always wins over a saved path. Resume format is the file an export can be written back as, so that agent can pick the conversation up.

showagenttyperesume formatdetectedstore path (empty = default for this OS)

View

Budget table columns (tokens is always shown):

Redaction

Defaults for the redact switch on the toolbar; you can override any rule there for a single export. Rules are computed from this machine (nothing is hard-coded). Every match is recorded; click a rule's count to see exactly what it replaced.

Custom words, one per line: text becomes [REDACTED], text=Alias becomes Alias:

Export

Import notice

A final message appended to exports and conversions that tells the model the session was imported, so it re-checks its environment before acting. Generic = one sentence; detailed = one bullet per item.



 

What the controls and numbers mean

The two token numbers

max context
The whole session with every option on and nothing capped: the most this transcript can cost if you paste all of it somewhere. Content options never move it. Layout options (merge and the tool headers in Settings) apply to both numbers, so that with everything on, selected equals it exactly.
selected
Exactly what the preview shows, and therefore what an export costs. This is the number the options move.
the bar
Selected against the reference size from Settings → View, e.g. the context window of the model you will paste into. The dashed mark is where max context would land. Green under 60 %, amber to 90 %, red above.
the table
Where the selected tokens go, one row per element: your messages, assistant text, thinking, tool calls, tool results, injected context, notices, images, the import notice, and structure (headers and timestamps). An element that the options only partly include gets a second line showing what is left out. The last row is the total, and it equals selected exactly. Which extra columns appear is set in Settings → View.
counting
Token counts use tiktoken (cl100k_base) when it is installed; otherwise 4 characters ≈ 1 token and the numbers are labelled an estimate.

Options

tool output: names only / capped / everything
How much of every tool call and result to include, and the biggest lever on the token count. names only keeps the tool's name and nothing else: no arguments, no output, no sizes; a failed call is flagged with ↳ error. The model knows the call happened and can ask again; you pay four tokens instead of thousands. Arguments matter here: one Bash command or file patch runs to hundreds of characters, so dropping them is most of the saving. capped keeps the first N tokens of each result, N being the custom cap in Settings → View, and says how many were cut. A block barely over the limit is left alone, because the "cut" note would cost more than it saves. everything includes every argument and every byte. The mode touches nothing but the tool calls and results: thinking is on or off, and is never capped.
thinking
The model's reasoning blocks. Agents never feed their own past thinking back into context, so it is off by default. Some agents encrypt it (Codex); only a summary is available.
tool calls + results
What the agent ran and what came back. Where a result was too large for the transcript, the agent spilled it to a file next to the session; those are read back in, so you see the real output rather than a preview.
injected context
Messages the harness inserted automatically: system reminders, environment details, IDE selections, wrappers around your prompt. You never typed them; the model saw them. Off by default because they are noise to a human reader.
hide user / assistant turns
Drops that side's text and, for the assistant, its thinking. The tool calls a hidden assistant turn made are kept and filed under the tool turn, so a view with both sides hidden still lists which tools ran, under a [TOOL] header (a transcript always has at least one actor). Useful for reading only one side, and for seeing what the rest of the session costs on its own.
timestamps
How much of a time each message header carries. Measured on this tokenizer, [ASSISTANT] 2026-04-18 02:08:51 is 18 tokens, [ASSISTANT] 02:08:51 is 11 and [ASSISTANT] alone is 5, so on a long session this is worth thousands. The session header always states when the session started and ended, so nothing is lost by setting this to none; the ordering of the turns still carries the sequence.
merge
off prints one turn per message. same actor, back to back joins consecutive turns of the same actor into one turn with one header; in Claude Code every tool call is its own assistant message, so a run of twenty calls used to be twenty [ASSISTANT] … headers at up to 18 tokens each; that, not the tool names, was why names only still cost twice the conversation. A tool result belongs to the assistant turn that called it and merges into it. everything into one user / system / assistant message makes the whole transcript ONE message of that role, in every format: json, jsonl and csv get a single record holding the conversation; text, markdown and html print the session header once and then one turn holding the conversation, its inner turns kept as lines. Timestamps come off there, because one message cannot carry hundreds. Nothing is dropped in any mode. An agent's own resumable file is never merged; it is copied record for record. The default is in Settings → View.
where the tokens really go
A tool result is printed under the turn that called it, with no header of its own. A [TOOL] 2026-09-05 21:26:08 +0300 line costs 21 tokens, and on a session with a few hundred tool turns that was most of the export: on one measured view, 4,734 of 7,759 tokens were those header lines. Settings → View can switch them back on. For the same reason the UTC offset is printed once in the session header instead of on every line, and a model name is printed only when it changes.
messages from–to
Keep only messages numbered from up to (not including) to, counting from 0 in the full session. Leave both empty for all.
redact
Switch it on and the rules appear next to it, with what they replaced on the same line: home directory, removable-media path, username, hostname, e-mail addresses, API-key-shaped strings, IP addresses, and the timezone. Replacements are placeholders such as /home/user, user, host, user@example.com, [REDACTED_KEY], [IP]. Click the summary to see every value that was replaced. custom words takes one-off literals (secret or Name=Alias); the persistent list lives in Settings.
timezone, and why it behaves differently
Every other rule replaces text. Timestamps are not text in the transcript (they are dates, formatted when the export is written), so no search-and-replace can reach them, and adding +0300 as a custom word matches nothing at all. Ticking timezone stops the offset being printed: the only place it appeared was the session header's started and ended line, and it is simply left out. The clock is not shifted. A bare timestamp carries no location (a reader has no basis to call it UTC rather than local), so converting to UTC moved every time by three hours without hiding anything the missing offset had not already hidden. If you actually want UTC, that is --utc on the command line, which is a separate and explicit choice.

Export

format
The first entry is this agent's own format: the file it wrote itself, so it can be resumed. Then the generic ones: text (the preview), markdown (a heading per turn), html (one standalone page), json / jsonl (the canonical model, one message per line for jsonl), csv (one row per message, for a spreadsheet).
convert to
Write the conversation in a different agent's format. That one is lossy, because no agent has a place for another's tool records or reasoning: your messages and the assistant's text carry, tool activity folds into short notes, thinking and injected context are dropped. Exporting to the agent it came from is not a conversion at all: the file already is that format, so it is copied and nothing is lost. The shows the fate of every element for the pair you pick. The format menu stays open while a target is chosen: pick text or any other generic format to get the conversation folded exactly as the conversion folds it, written as that format, for feeding to the agent yourself instead of installing its file.
why only some targets
A target has to be written and proven to resume. Claude Code, Codex CLI and Gemini CLI keep their history in a plain file whose shape has been verified by installing a converted session and resuming it. The others are readable but not writable: Antigravity, Cursor and Copilot Chat keep resumable state in SQLite or protobuf blobs an outside tool cannot safely forge, and the chat apps have no resume at all. They are listed in the menu, greyed out, with the reason.
location
Where the file ends up. download to this browser hands it to the browser. save into a folder on this machine writes it into the export folder from Settings. put it in the agent's store, ready to resume writes it into the agent's own session store, so it is waiting there the next time you resume.
workspace
The working directory the copy belongs to. Agents file sessions by directory, so this decides where the session turns up. It only does anything when the location is the agent's own store, and is greyed out otherwise. the folder it came from leaves it where the original was recorded.
import notice
Appends a final message telling the model the session was imported, so it re-checks paths, date and time, operating system and tools before acting. preview… shows the exact wording with this session's values, and lets you change what it says with the result updating as you click.

Session list

columns
The header row sorts: click a column to sort by it, click again to reverse. Drag the right edge of a column header to resize that column; double-click the edge to give it its share back. The button at its right chooses which columns are shown. Name is always there. Both choices are remembered. The columns share the panel's width and long cells are cut with an ellipsis; drag the panel wider to see more. Clicking an id copies the full id to the clipboard (the cell shows its first 8 characters); it does not open the session; click the name for that.
the panel itself
Drag its right edge to resize it, and use in the top left, or Ctrl+B, to hide it entirely when you want the whole window for the transcript; the search box sits above the list and hides with it. The width and the hidden state are remembered by this browser.
which agents appear at all
Settings → Agents. That is a different question from which columns you are looking at.
size
The size of the file on disk. It also holds the JSON envelope, per-turn usage records and any images, so it is normally several times larger than the transcript inside it.
project / cwd
Shown when the agent recorded them. Antigravity records a working directory only for conversations opened in a workspace; headless agy -p runs have none.
files beside a session
A transcript is often not the whole session. Claude Code keeps a folder of the session's own id next to it: tool-results/ holds the full text of results too large to inline (read back in here, so you see the real output rather than the 2 KB preview, and copied along by a native export), subagents/ holds Task-tool runs as separate conversations, and custom-title.json holds the title you typed. Gemini CLI spills the same way into tool-outputs/.

Redaction: what was replaced

Conversion table: what carries over

Before your first conversion

Converting to a different agent rewrites the conversation in that agent's own format so it can resume it. It is lossy by design: your messages and the assistant's text are carried verbatim; tool calls and results become short bracketed notes; thinking, injected context and notices are dropped; images are not carried. Every conversion comes with a fidelity report that counts exactly what was kept, folded and dropped.

Exporting to the agent the session came from is not affected; that is a copy, and nothing is lost.

Check the for the fate of each element and the verified agent versions. Agent formats are undocumented internals and can change with any release.

Export report


 

Import notice: exactly what gets appended