About termlog
termlog turns raw terminal-session text into shareable Markdown for developers documenting or sharing command output. It removes terminal control sequences and progress redraws, and redacts common secret patterns by default in a local pass.
Key features
- 01Strip ANSI escape sequences
- 02Collapse carriage-return progress output
- 03Trim trailing whitespace and blank lines
- 04Redact common secret patterns
- 05Report redaction counts and line statistics
Use cases
- 01Prepare terminal output for chat
- 02Add clean command logs to documentation
- 03Share logs while masking credentials
MCP support
The MCP server exposes `clean_terminal_log`, which accepts terminal text and an optional redaction setting, then returns cleaned Markdown and related counts and statistics.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
1Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | The raw terminal session text |
| redact | boolean | No | Apply secret redaction (default true) |
Details
From the project READMEtermlog
Paste a terminal session into a chat or a doc and you paste everything: colour codes, progress bars that rewrote themselves a hundred times, and — too often — the API key that scrolled by in the middle. termlog cleans a raw session into shareable markdown in one local pass:
- ANSI removal — CSI, OSC, and two-character escape sequences are stripped, and every removal is counted
- Carriage returns — each line keeps only what followed
its last
\r, so a progress bar collapses to its final state - Trailing whitespace — trailing spaces and tabs stripped
- Redaction (on by default) — private-key blocks, AWS
access key ids, GitHub tokens, Bearer credentials, and
key = valuesecrets are replaced with[REDACTED:<kind>]markers, applied in that pattern order and counted per kind - Blank lines — runs of 3+ newlines collapse to exactly 2, and blank lines at the edges are trimmed
The result is the cleaned text in a ```console fence, the
redaction counts, and line statistics. Pure local text
transform: no network, no configuration.
CLI
npx @reneturcios/termlog clean --input session.log
npx @reneturcios/termlog clean --input session.log --no-redact
npx @reneturcios/termlog --version
The input file is read as UTF-8 and the output object is
printed as JSON. Exit codes: 0 on success, 1 on a runtime
error (including an unreadable input file), 2 on a usage
error.
MCP server
npx -y @reneturcios/termlog mcp
MCP client config:
{
"mcpServers": {
"termlog": {
"command": "npx",
"args": ["-y", "@reneturcios/termlog", "mcp"]
}
}
}
Tools
-
clean_terminal_log— Turn a raw terminal session into clean, shareable Markdown.text(string, required) — the raw terminal session textredact(boolean, optional, default true) — apply secret redaction
Returns
{markdown, redactions, stats}: the fenced cleaned text, the per-kind redaction counts (kinds with a count above zero, in pattern order), and{input_lines, output_lines, ansi_sequences_removed, total_redactions}.
Docker
docker run -i ghcr.io/cloudcorprecords/termlog
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/termlog clean --input /w/session.log
Development
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
License
MIT — Copyright (c) 2026 Rene Turcios
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.