Stop fighting your ↑ Up Arrow key to find the command you ran yesterday.
Stop the command bleeding. Termim automatically isolates your terminal history by working directory, ensuring the right command is always under your ↑ Up Arrow. No background daemons, 100% offline, and optimized for responsiveness.
Global History is Broken.
Pressing the up-arrow in a new project shouldn't yield npm commands from a frontend app you closed three hour
Directory Context
Termim understands directory context. Your history stays where it belongs.
Reading ~/.bash_history sequentially...
Returning literal next command in history log.
Logging secrets directly to bash_history.
Every typo and cd command is saved.
Hashing directory path...
Analyzing transitions from 'git status'...
Manual redaction engine scrubbing secrets...
Pruning typos and low-impact noise.
Engineered for Performance.
Real metrics tracking every command execution, Exit Code, Date/Time, and CWD without a background service.
Optimized Performance
Engineered for immediate startup. Termim eliminates the "Daemon Tax" by using lightweight core logic, achieving a highly responsive execution floor.
Atomic Concurrency
Powered by fd-lock. Every file-write is protected by Universal Advisory Locking, ensuring zero data corruption across 50+ parallel terminal panes.
Zero-Library Sieve
A manual, multi-token character sieve replaces expensive RegEx for credential redaction. Processing cost: <0.5ms per command.
Behavioral Markov Engine
High-coefficient weighting based on true command transitions. Termim observes your habits to rank context by probability, not just frequency.
Plays nice with your setup.
We don't hijack your `$PATH` or break your aliases. Termim operates strictly as a non-destructive intercept overlay.
The "Anti-Features".
Great tools are defined by what they say *No* to. Here is exactly what we avoided, and why.
🚫 No SQLite SQLite
Tools relying on single-file SQLite databases suffer from WAL lock-contention when you have 5 panes compiling simultaneously. We use absolute flat files mapped via SHA-256 for zero-lock concurrency.
🚫 No Background Daemons
We refuse to drain your laptop battery while you read documentation. Termim's CPU usage is strictly isolated to the time it takes you to press the Enter or Arrow keys.
🚫 No Artificial AI
LLM hallucinations have no place in critical production environments. Termim uses deterministic First-Order Markov Chains, meaning predictable, repeatable suggestions.
🚫 No Network Requests
You shouldn't have to authenticate to use your own shell history. Termim does exactly zero cloud syncing and transmits absolutely zero telemetry.
How it achieves high performance.
Every keystroke matters. We bypassed heavy frameworks and wrote the core in Rust, triggered strictly by your terminal's native hooks.
- Cryptographic Routing: Directories are isolated using SHA-256 hashes of their absolute paths, allowing efficient lookups.
- Shadow Registry: All metadata is securely stored in `~/.termim/` without polluting your local folders.
- Native Overlays: Hooks instantly into PowerShell, Bash, Zsh, and Fish without modifying core shell executables.
Up Arrow< 5ms overhead
Low execution overhead
Technical FAQ.
Deep dives into the Termim engine, performance, and privacy.
Termim uses a Layered Context Engine. For discrete Up/Down navigation, it serves localized history first, then seamlessly "escapes" to your global history. For the Ctrl+P search palette, it merges both contexts—keeping local results at the top while allowing you to search and recover commands from any project globally.
No. Termim is a zero-daemon binary written in Rust. It utilizes Lazy Loading and Zero-Library Tax architecture, ensuring a startup overhead that is effectively invisible to the human eye.
Before any command is written to disk, Termim's character scrubbing engine removes credentials (e.g., `user:password@host` becomes `user:***@host`). This happens in-memory with negligible processing cost.
Everything stays on your machine. All history, Markov weights, and directory hashes are stored in `~/.termim/`. Termim performs Zero Telemetry and zero cloud syncing.
Yes. Termim operate as a thin wrapper around native shell hooks. It is tested for native compatibility with Starship, Oh-My-Zsh, Pure, and Oh-My-Posh prompts without interference.
Absolutely. Termim handles discrete Up/Down navigation. Your native Ctrl+R (reverse-i-search) remains completely untouched, allowing you to hit your full global history whenever needed.
Because Termim uses the Absolute Path SHA-256 hash as the unique directory ID, moving or renaming a folder creates a fresh context. Old directory history is never "leaked" into the new folder name.
Use the termim clear command to wipe your history, or termim uninstall to completely remove Termim from your system. Total data agency at the command line.
Stop mixing contexts today.
Smart installers detect your architecture and fetch the correct Rust binary automatically.
irm https://raw.githubusercontent.com/akhtarx/termim/main/installer/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/akhtarx/termim/main/installer/install.sh | bash