Soft Forge Process Explorer
htop for Visual Studio Code, on three surfaces over one model:
- The Quick Pick (
Ctrl+Alt+P, Cmd+Alt+P on macOS): VS Code's own palette over the editor with your processes,
the machine summary as its title, filter as you type, and Enter for htop's actions (kill with the signal list,
nice, IO priority, affinity, environment, open files, locks, trace). Checked items are htop's tags.
- The page (
Ctrl+Alt+Shift+P, the status bar item): an editor tab that fills its area with the meters, the
process table with htop's columns, the side pane and the function bar, and takes htop's keys as they are (F9 kill,
F7/F8 nice, F3 search, F4 filter, F5 tree, F6 sort, F2 setup, Space tag, a e l x s i). Drag the tab to
another group or a floating window; it keeps its state.
pmon, the same in a terminal.


The extension reads /proc and /sys directly, so it runs on Linux (locally or on a Linux remote); on other systems
the pick and the page say so. It is open source under the MIT licence and has no account, licence key or network access of any
kind.
Documentation
- Getting started: install, open, the first things to try, privileges, settings.
- The Quick Pick: what it shows, the title buttons, the action pick.
- The page and its keys: every key, as htop's F1 help lists them.
- Meters: the CPU bars, every meter and its source in
/proc, the status bar item.
- pmon: the command line reference, generated from
pmon help.
- htop mapping: every htop feature mapped to the Quick Pick, the page, the status bar item and
pmon,
with the decisions D1–D9 behind the design.
- Changelog.
Commands and settings
| Command |
Key |
What |
| Process Explorer: Open |
Ctrl+Alt+P / Cmd+Alt+P |
the Quick Pick over the editor, or closes it when open |
| Process Explorer: Open page |
Ctrl+Alt+Shift+P / Cmd+Alt+Shift+P |
the page in the editor area, or closes it when open |
| Process Explorer: Close |
|
closes both |
| Process Explorer: Install pmon (the command line) |
|
links the bundled pmon into ~/.local/bin |
Settings live under processExplorer.* (updateInterval, showAllUsers, statusBar, columns, meters.left,
meters.right, display); the page's Setup (F2) edits them in place, the Quick Pick's Settings button opens them.
Design
design/process-explorer.design-language.json is derived from the VS Code design language; design/ui.design holds
the design set, the Process Explorer kit and the screens (the Quick Pick, the page, the 0.1 modal they grew from);
design/ux.design the flows as a prototype and the journeys. design/README.md explains the files, how to work on them and the lint baseline.
Development
npm install
npm run compile && npm run lint
npm run test:unit # the model, the host helpers, the CLI and the page's model under node (mocha)
npm run test:integration # the extension in a VS Code instance (@vscode/test-cli)
npm run pmon -- -n 1 # the command line from the checkout
node scripts/pmon-doc.mjs # regenerate docs/pmon.md from the CLI's help
scripts/shot.sh # the page outside VS Code → design/previews/page-shell.png (headless Chromium)
npm run bundle && npm run package # out/extension.js, out/cli.js, the VSIX
Press F5 in VS Code to run the extension, then Ctrl+Alt+P for the Quick Pick or Ctrl+Alt+Shift+P for the page.
Layout: src/model (the /proc and /sys readers, the sampler, the columns; shared by the extension and pmon),
src/host (the Quick Pick and its picks, the page panel, the protocol, the actions, the details, the status bar, the
CLI installer), src/cli
(pmon), media/ (the page: custom elements with inline styles in the Project Board extension's aesthetics, no
framework, no build step), test/ (fixtures of /proc and the page's tests), design/, docs/.
Work is tracked on planning.pb (the Project Board file) and nowhere else.
Licence
MIT. See LICENSE.
| |