Snapshooterr is a lightweight terminal documentation tool made for pentesting.
The idea is simple: instead of manually copying commands, output, and timestamps into notes while working, Snapshooterr records your terminal session in the background and lets you save your most recent commands whenever you want.
For example:
❯ nmap 192.168.1.1
...
❯ whoami
aliow
❯ pwd
/home/aliow
❯ snapshooterr
How many last inputs you wanna record? 3
Snapshooterr then creates or updates a text file containing the selected commands, their output, and the time they were actually executed.
- Records terminal commands and their output.
- Keeps track of when each command was actually run.
- Lets you choose how many recent commands to save.
- Remembers the snapshot name for the current terminal session.
- Appends new snapshots instead of overwriting previous ones.
- Doesn't record
snapshooterritself. - Handles interactive commands such as
nano,vim, andnvimwithout dumping their terminal interface into your notes. - Gives each terminal its own recording session.
- Automatically starts with Fish after installation.
The goal is to make documentation part of the normal terminal workflow instead of something you constantly have to stop and do manually.
A snapshot will look roughly like this:
======================================================================
SNAPSHOOTERR: pentest
SESSION: 44406-1786432927274407313
GENERATED: 2026-08-11 10:22:31
======================================================================
[2026-08-11 10:22:01] $ nmap 192.168.1.1
Starting Nmap 7.99...
...
Nmap done: 1 IP address (1 host up) scanned in 5.79 seconds
[2026-08-11 10:22:12] $ whoami
kali
[2026-08-11 10:22:20] $ nano /tmp/test.txt
The resulting file is plain text, so it's easy to read, search, copy, or use later when writing a pentest report.
Clone the repository:
git clone https://github.com/qoAliop/snapshooterr.git
cd snapshooterrMake the installer executable:
chmod +x install.shRun it:
./install.shThe installer installs the Snapshooterr scripts into:
~/.local/bin/
and automatically adds the Snapshooterr startup code to:
~/.config/fish/config.fish
After installation, restart your terminal.
You can verify that it was installed by running:
snapshooterrNote: Snapshooterr currently uses Fish for its automatic terminal-session setup.
Once installed, just use your terminal normally.
For example:
echo "hello"
ls
whoami
pwd
nmap 192.168.1.1You don't need to manually start the recorder.
When you want to save some of your recent work, run:
snapshooterrThe first time you run it in a terminal session, you'll be asked for a snapshot name:
Name this snapshot: pentest
Then you'll be asked how many recent commands you want to record:
How many last inputs you wanna record? 5
The snapshot will be saved under:
~/Documents/snapshooterr/
For example:
~/Documents/snapshooterr/pentest.txt
Running snapshooterr again in the same terminal keeps the same snapshot name and only asks how many recent commands you want to save.
Snapshooterr appends new snapshots instead of overwriting the existing file.
For example, you could save your initial enumeration:
snapshooterr
→ 5 commands
Continue working for a while, then save another batch:
snapshooterr
→ 10 commands
The new snapshot is added to the existing file.
This lets you gradually build a record of your work without having to manually maintain a notes file.
The project currently contains:
snapshooterr/
├── LICENSE
├── README.md
├── install.sh
├── requirements.md
├── snapshooterr
└── snapshooterr-session
The main command.
It reads the current terminal recording, extracts the commands and output, adds timestamps, and writes the selected commands to the snapshot file.
This starts the terminal recording session and creates the session-specific recording and timing files.
You normally don't need to run this manually. It is automatically handled by the Fish configuration installed by install.sh.
The installation script.
It installs the Snapshooterr scripts and configures Fish so that a recording session starts automatically for new terminals.
The installer is designed to be safe to run again when updating the project.
Contains the requirements and dependencies needed by Snapshooterr.
Snapshooterr is released under the MIT License.
Temporary session data is stored in:
~/.local/state/snapshooterr/
Your actual snapshots are stored in:
~/Documents/snapshooterr/
You don't need to create these directories yourself. Snapshooterr creates them when needed.
When doing pentesting, I don't really want to stop every few minutes to document:
command → output → timestamp
Especially when running a bunch of enumeration commands, manually keeping notes can get annoying pretty quickly.
I wanted something closer to a normal terminal workflow:
do the work
↓
keep working
↓
snapshooterr
↓
notes
So that's basically what Snapshooterr is:
a lightweight terminal session logger made specifically for keeping pentesting notes without constantly interrupting your workflow.
Snapshooterr is licensed under the MIT License.
See LICENSE for the full license text.