
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
diffstalker
Advanced tools
A terminal git UI that lives on your second monitor. It watches your repositories in real time, follows you as you switch projects, and shows word-level diffs so you always know exactly what changed.
Stage files and review changes with word-level diff highlighting.
Browse commit history and inspect past changes.
Keep up with AI. When AI assistants edit your code, changes happen fast. diffstalker gives you a live view of what's being modified, so you can review changes as they happen rather than piecing things together afterward.
Always-on visibility. Put it on your second monitor and forget about it. As you switch between projects, diffstalker follows along - showing your current changes, staged files, and diffs without you ever needing to alt-tab or type git status.
Dead-simple integration. Follow mode watches a plain text file for paths. Any script, hook, or tool can write to it. Add two lines to your shell config and every cd into a git repo updates the display automatically.
Everything at a glance. Auto-tab mode ensures there's always something useful on screen - uncommitted changes when you have them, recent commits when you don't.
Ctrl+P to jump to any file in the repoj/k navigation[ and ] to adjust the split between file list and diffw for long linesnpm install -g diffstalker
Or from source:
git clone https://github.com/yogh-io/diffstalker.git
cd diffstalker
npm install && npm run build:prod
npm link
diffstalker # current directory
diffstalker /path/to/repo
diffstalker --follow # watch for repo changes (recommended for second monitor)
Follow mode watches ~/.cache/diffstalker/target for repository paths. Write or append to this file - diffstalker reads the last non-empty line, so both styles work.
Shell hook - update on every cd:
# Add to .bashrc or .zshrc
diffstalker_notify() {
[[ -d .git ]] && echo "$PWD" > ~/.cache/diffstalker/target
}
cd() { builtin cd "$@" && diffstalker_notify; }
Tmux - update on pane/window switch:
# In .tmux.conf
set-hook -g pane-focus-in 'run-shell "tmux display -p \"#{pane_current_path}\" > ~/.cache/diffstalker/target"'
Neovim - update when changing buffers:
-- In init.lua
vim.api.nvim_create_autocmd({"BufEnter"}, {
callback = function()
local root = vim.fn.finddir('.git/..', vim.fn.expand('%:p:h') .. ';')
if root ~= '' then
local f = io.open(os.getenv('HOME') .. '/.cache/diffstalker/target', 'w')
if f then f:write(vim.fn.fnamemodify(root, ':p:h')); f:close() end
end
end
})
Any script:
echo "/path/to/repo" > ~/.cache/diffstalker/target # overwrite
echo "/path/to/repo" >> ~/.cache/diffstalker/target # append (also works)
The file-based approach is intentionally simple. IDE plugins, window manager hooks, project switchers, git hooks - if it can write to a file, it can drive diffstalker.
| Key | View | What it does |
|---|---|---|
1 | Diff | Stage/unstage files, review word-level diffs |
2 | Commit | Write commit messages, amend previous commits |
3 | History | Browse recent commits and inspect their diffs |
4 | PR | Compare branch against a base branch with per-file navigation |
5 | Explorer | Browse the file tree with syntax-highlighted preview and fuzzy finder |
| Action | Keys |
|---|---|
| Navigate | ↑/↓ or j/k |
| Switch panes | Tab |
| Switch views | 1-5 |
| Toggle stage | Space or Enter |
| Stage/unstage all | Shift+A / Shift+Z |
| Discard changes | d (with confirmation) |
| Fuzzy file finder | Ctrl+P or / in Explorer |
| Resize panes | [ / ] |
| Toggle line wrap | w |
| Themes | t |
| Help | ? |
Full keybinding reference available with ? in the app.
Six built-in themes - press t to switch:
| Theme | Description |
|---|---|
| Dark / Light | Default palettes |
| Dark / Light (colorblind) | Blue/red palette for color vision deficiency |
| Dark / Light (ANSI) | Uses your terminal's 16 colors for full consistency |
Config file: ~/.config/diffstalker/config.json
{
"theme": "dark",
"splitRatio": 0.4,
"targetFile": "~/.cache/diffstalker/target"
}
diffstalker [options] [path]
Options:
-f, --follow [FILE] Watch file for repo paths
--once Show status once and exit
-d, --debug Log path changes to stderr
-h, --help Show help
MIT
FAQs
Terminal application that displays git diff/status for directories
The npm package diffstalker receives a total of 4 weekly downloads. As such, diffstalker popularity was classified as not popular.
We found that diffstalker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.