v1.1.3 is now live

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.

Shell
Termim: Ready
0MB
Background RAM
Fast
Execution Performance
~4MB
Binary Size
0
Telemetry Events
The Problem

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

Context Mastery

Directory Context

Termim understands directory context. Your history stays where it belongs.

Standard Shell History
UserPresses ↑ Up Arrow
~/kubernetes-app
ShellGlobal Linear Scan

Reading ~/.bash_history sequentially...

Resultssh root@dev-legacy-server
ContextJust ran git status
~/frontend-ui
UserPresses ↓ Down Arrow
ShellChronological Scan

Returning literal next command in history log.

Resultcd ../docs
UserPresses ↑ Up Arrow
~ (Home)
ShellPlain Text Log

Logging secrets directly to bash_history.

Resultexport AWS_KEY="sk-12948a"
UserPresses ↑ Up Arrow
~/api-server
ShellUnfiltered Log

Every typo and cd command is saved.

Resultgit statsu
Termim Contextual Shell
UserPresses ↑ Up Arrow
~/kubernetes-app
TermimDirectory Context

Hashing directory path...

Resultkubectl apply -f manifest.yaml
ContextJust ran git status
~/frontend-ui
UserPresses ↓ Down Arrow
TermimMarkov Engine

Analyzing transitions from 'git status'...

Resultgit add . && git commit -m "update"
UserPresses ↑ Up Arrow
~ (Home)
TermimPrivacy Sieve

Manual redaction engine scrubbing secrets...

Resultexport AWS_KEY="********"
UserPresses ↑ Up Arrow
~/api-server
TermimSuccess-Only

Pruning typos and low-impact noise.

Resultpip install -r requirements.txt
Capabilities

Engineered for Performance.

Real metrics tracking every command execution, Exit Code, Date/Time, and CWD without a background service.

ENGINE STATUS: NOMINAL
CORE: V1.1.3 EXECUTION: NATIVE
0x01

Optimized Performance

Engineered for immediate startup. Termim eliminates the "Daemon Tax" by using lightweight core logic, achieving a highly responsive execution floor.

Standard Daemons
150ms+
Termim Native
Fast
0x02

Atomic Concurrency

Powered by fd-lock. Every file-write is protected by Universal Advisory Locking, ensuring zero data corruption across 50+ parallel terminal panes.

0x03

Zero-Library Sieve

A manual, multi-token character sieve replaces expensive RegEx for credential redaction. Processing cost: <0.5ms per command.

0x04

Behavioral Markov Engine

High-coefficient weighting based on true command transitions. Termim observes your habits to rank context by probability, not just frequency.

git add
98%
git commit
Seamless Integration

Plays nice with your setup.

We don't hijack your `$PATH` or break your aliases. Termim operates strictly as a non-destructive intercept overlay.

Starship / Oh-My-Posh
Native
Tmux / Zellij
Native
FZF History Search
Supported
Windows Terminal
Native
Product Philosophy

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.

Architecture

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.
User Types
Up Arrow
Shell Hook (Bash/PS)
< 5ms overhead
Termim Rust Core
Low execution overhead
Path Hash Lookup
Markov Parsing
Knowlege Base

Technical FAQ.

Deep dives into the Termim engine, performance, and privacy.

How is my history isolated globally vs locally?

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.

Will Termim slow down my terminal startup?

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.

How does the 'Privacy Sieve' handle my API keys?

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.

Where exactly is my data stored?

Everything stays on your machine. All history, Markov weights, and directory hashes are stored in `~/.termim/`. Termim performs Zero Telemetry and zero cloud syncing.

Is it compatible with my shell theme (Starship/Zsh)?

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.

Can I bypass Termim for global search in an emergency?

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.

What happens if I rename or move a project folder?

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.

How do I factory reset or clear my isolated history?

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