Sonensei.ch
> ls ~/tools

Tools for
working with data

I'm Peter Gürtler, a software developer. These are tools I built for my own work and published as open source: a JSON editor for your IDE and browser, and a few programs for the terminal.

Featured · version 0.3.0

JSON Canopy

Explore and edit JSON as nested tables or as a form instead of raw text. Search keeps the structure around each match. Load a JSON Schema and Canopy marks problems, offers enum values and optional keys, and shows each field's documentation.

  • IntelliJ IDEA & JetBrains IDEs
  • VS Code
  • Any browser
  • Apache 2.0
JSON Canopy showing a configuration file as a form, with an outline on the left and schema docs on the right

Terminal & workflow tools

Small, self-contained programs. Most are a single Python file that uses only the standard library, so installing one means copying one file.

git-hist

  • new
  • Python 3
  • terminal
  • MIT

An interactive, two-pane git history browser for the terminal. The left pane shows the commit graph, the right pane the full git show of the selected commit. The right pane follows as you move through the history.

  • Works as git hist, with any revisions and paths git log takes.
  • Regex search in either pane, with highlighting and smart case.
  • Copy a commit hash with y; resize the panes with < / >.
  • One file, standard library only (curses).
curl -o ~/.local/bin/git-hist \
  https://raw.githubusercontent.com/OldPeasant/git-hist/main/git-hist
chmod +x ~/.local/bin/git-hist
git hist
git-hist on GitHub

taskflow

  • new
  • Python 3
  • git
  • AI agents
  • Apache 2.0

A git-native task board for teams of people and AI coding agents. Git is the source of truth: one Markdown file per task, claimed atomically with git push. Needs only Python 3 and git.

  • Tasks with dependencies; tasks.py next hands out the next task that is ready.
  • agents.py starts several Claude Code agents, each in its own clone, working through the board.
  • A check runs on the merged result before a task can be marked done, which catches merge conflicts and broken builds.
  • Leases and wip/ backups: when a laptop dies, another agent takes over its task where it stopped.
  • A live dashboard with agents, dependency graph, tasks and activity.
  • Can work across several repositories and sync the work back to each of them.
taskflow on GitHub
python tasks.py new api "Define the API" --deps spec
python tasks.py next       # what can I work on?
python tasks.py claim api
python tasks.py done api   # merge main, run the check

python agents.py start 4   # four agents on this laptop
python tasks.py watch      # live dashboard

It comes with a 22-task starter board for a typical full-stack app with an AI feature. An AGENTS.md describes the protocol the agents follow.

lyon

  • Python 3
  • terminal
  • Linux

A file browser for the shell. Folders open in columns side by side, so you always see where you are and what's next to it. You navigate with the arrow keys or vi keys.

  • h j k l or arrows to move; Shift+arrows to page.
  • v views a file with less, e edits it with vi.
  • s opens a shell in the current folder.
  • + / - change the column width; ? shows the help.
lyon on GitHub
lyon showing /etc, /etc/httpd and /etc/httpd/conf.d in side-by-side columns
Columns from / down to /etc/httpd/conf.d/userdir.conf.

jill

  • Python 3
  • terminal
  • Linux

A Linux system explorer for the terminal. Jill reads most of its information from /proc and shows it on one screen.

  • CPU load per core, memory, uptime, battery and temperature sensors.
  • SELinux status and the SELinux context of each process.
  • All processes as a tree, with details for the selected process: command line, CPU times, net and gross memory.
  • Packaged as a single file (dist/jill).
jill on GitHub
jill showing SELinux, CPU, memory, battery and temperature panels above a process tree and process details
System panels, the process tree and details for the selected process.

ginsp

  • Python 3
  • git
  • library

A git release inspector. It walks the commit graph from release branches and go-live tags to work out which release a feature branch will ship in, and says when git alone can't tell.

ginsp on GitHub

More on GitHub

Source code, issues and the rest of my repositories are on my GitHub profile.

github.com/OldPeasant