Sovereign syntax-highlighting file viewer and pager for the openOODA era.
A drop-inbat/catreplacement written in pure openOODA, featuring negative-trust capability security, syntax highlighting viaootethemes, line numbering, range windowing, and a first-class Model Context Protocol (MCP) surface.
Part of openOODA-tools.
oocat has zero runtime dependencies. It compiles to a standalone native binary linked directly with libc.
Installs the standalone native binary to /usr/local/bin (or ~/.local/bin):
curl -fsSL https://openooda-tools.github.io/oocat/install.sh | bash# Automated via installer
curl -fsSL https://openooda-tools.github.io/oocat/install.sh | bash -s -- --apt
# Or manual package install
sudo dpkg -i oocat_0.2.0-1_amd64.deb# Automated via installer
curl -fsSL https://openooda-tools.github.io/oocat/install.sh | bash -s -- --dnf
# Or manual RPM install
sudo dnf install ./oocat-0.2.0-1.x86_64.rpm# Automated via installer
curl -fsSL https://openooda-tools.github.io/oocat/install.sh | bash -s -- --arch
# Or manual build via packaging/PKGBUILD
cd packaging && makepkg -siTo cleanly remove oocat and any installed package manager entries:
# Automated via standalone uninstaller
curl -fsSL https://openooda-tools.github.io/oocat/uninstall.sh | bash
# Or via installer flag
curl -fsSL https://openooda-tools.github.io/oocat/install.sh | bash -s -- --uninstall
# Or preview removal without making changes (dry-run)
curl -fsSL https://openooda-tools.github.io/oocat/uninstall.sh | bash -s -- --dry-runusage: oocat [options] [FILE]...
Concatenate FILE(s) to standard output with syntax highlighting and line numbers.
With no FILE, or when FILE is -, read standard input.
Options:
-n, --number number all output lines
-b, --number-nonblank number nonempty output lines, overrides -n
-s, --squeeze-blank suppress repeated empty output lines
-A, --show-all display $ at end of each line, show tabs as ^I
-r, --line-range <R> only output lines within range (e.g. 10:30, :20, 50:)
-l, --language <LANG> override syntax language highlighter
-t, --theme <THEME> override syntax color theme
--style <STYLE> display style: plain, numbers, grid, full [default: full]
--color <WHEN> colorize output: auto, always, never [default: auto]
--no-color disable syntax highlighting
--mcp run as Model Context Protocol stdio server
-h, --help display this help and exit
-v, --version output version information and exit
# Display source file with syntax highlighting, line numbers, and file header
oocat main.oo
# Display specific line range (supports attached flags like -r10:30)
oocat main.oo -r10:30
# Simple cat mode without frames or line numbers
oocat main.oo --style plain
# Override language and theme via attached flags
oocat data.txt -ljson -tclassic/1982
# Standard UNIX pipe processing (defaults to raw uncolored text unless --color=always)
git diff | oocat - --style numbers
# Squeeze repeated blank lines and number non-empty lines
oocat -s -b script.shoocat automatically discovers and synchronizes visual presentation with oote:
- Configuration File: Reads
~/.openooda/theme.ootwith$HOMEfallback. - Environment Overrides: Respects
OODA_THEME,NO_COLOR,OO_NO_COLOR. - Supported Languages: Built-in lexers for
openOODA,Shell,C/C++,JSON,Python,Markdown,Rust, andplain.
oocat includes a built-in JSON-RPC 2.0 streaming MCP stdio server for LLM coding agents:
oocat --mcpview_file: Inspects and slices file content with line count and total lines metadata (path,start_line,end_line,highlight,theme,show_line_numbers).highlight_code: Formats arbitrary code snippets withootesyntax tokens for terminal rendering (code,language,theme).list_languages: Enumerates all supported language syntax highlighters.slice_lines: Pure in-memory line range extraction with clamping (content,start_line,end_line).
- Zero Ambient Authority: Written in pure openOODA with capability-bounded tokens (
&FsReadCap,&EnvCap). - No Shell Escapes: Pure native execution without
/bin/shinvocations. - Page Rule & Academy Governance: 100% compliant with the openOODA Academy and House Laws codified in
AGENTS.md.
Apache License, Version 2.0. See LICENSE for full text.