I am Tony Narlock
This is my professional website. I’ve been a software developer since 2007. If you’re not in the field, what I do might not make much sense to you.
I work at tech startups, building web-based applications. On the frontend, I use React, TypeScript, and Relay (GraphQL), and on the backend, Python and Amazon Web Services.
In my spare time, I plan, develop, and maintain a suite of developer tools. For instance, tmuxp, which constructs tmux sessions from a JSON or YAML file. A few years ago, I also wrote a book about tmux, titled “The Tao of tmux”. Another tool I’ve created is cihai, based on Unicode’s UNIHAN dataset, which supports Chinese, Japanese, and Korean languages.
I actively contribute to open-source software projects. You can find me on GitHub, GitLab, and OpenHub.
My CV documents everything I’ve ever done - professional work, my projects, and open-source contributions (I’m a polyglot; there’s even some C++ in there).
Hello, I’m Tony Narlock
This is my professional website. I’ve been a software developer since 2007, currently working from Texas.
I build web-based applications at tech startups. On the frontend, I work with React, TypeScript, and Relay (GraphQL); on the backend, Python and Amazon Web Services.
Outside of work, I maintain a collection of developer tools. tmuxp builds tmux sessions from JSON or YAML configuration. I’ve also written “The Tao of tmux”, a practical guide to the terminal multiplexer. cihai provides programmatic access to Unicode’s UNIHAN dataset for Chinese, Japanese, and Korean characters.
I contribute to open-source projects and you can find my work on GitHub, GitLab, and OpenHub.
My CV has the details — professional work, personal projects, and contributions across various languages and technologies.
What's going on in my life as a programmer
What am I busy with outside of work?
2026
August 2026
agentgrep
agentgrep shipped four alphas, v0.1.0a47–v0.1.0a50, sharpening what the explorer copies and what the catalogue admits it holds:
- Copying follows the highlight: select text with the mouse and
Ctrl-Ccopies it, while an empty selection keeps its old job of stopping the search. Notifications now report what was sent to the terminal rather than claiming a clipboard write nothing acknowledged depth:,effort:, andkind:join the query language, so search depth and record kind are typed terms across the CLI, MCP, and explorer instead of flags. A misspelled field predicate now warns with a suggestion rather than quietly running an empty search- Every store an agent keeps is catalogued — including app state, derived caches, and encrypted stores agentgrep deliberately does not read — so
findtells a deliberate omission from an undiscovered one - Origin data returns to three backends: Cursor IDE records carry their working directory, branch, model, and worktree again, Grok transcripts are dated instead of dropping out of date filters, and Gemini stops reporting a project name as a workspace hash
libtmux-mcp
libtmux-mcp gives an AI agent a tmux terminal. v0.1.0a21 tries a new shape for scoping what that agent can reach: LIBTMUX_TOOLSETS names the groups of tools the server hands out — inspect, manage, execute, teardown — so inspect on its own is an agent that reads panes and never types into one. What shape fits a tmux MCP is still being worked out; the trust page carries the current thinking.
It also keeps caller-supplied names and paths literal instead of letting tmux expand them as formats, and search-panes no longer stalls on a pathological pattern.
vcspull
libvcs v0.46.0 stops a repository URL or a configured revision from doing more than checking code out. A value starting with - reached git and svn as an option — through git pull, a revision, and svn checkout, three places an end-of-options -- cannot guard — where it could run a command or truncate a file. Those are now rejected. An external report prompted the audit that found them. Progress-callback timestamps are now aware UTC values rather than naive local time.
vcspull v1.67.0 picks this up with no configuration or CLI changes.
django-search-query
django-search-query v0.1.0a1 opens the Django floor move that three git-pull packages made on 2026-08-08: a Django 5.2 LTS minimum with 6.0 and 6.1 added, after 4.2 LTS and 5.1 both left security support. Behavior is untouched in each — only the supported range moved. It also fills out its documentation site: a runnable tutorial, how-to guides, an API reference, and a dedicated query-language page whose worked examples are checked against a live table.
django-docutils
django-docutils v0.31.0 makes the same move — Django 6.1 and 6.0 added, minimum raised to 5.2 — with rendering unchanged, so upgrading needs no code changes beyond the floor. v0.31.1 puts the project links on the PyPI page and trims the source distribution to the package, its tests, and its docs.
django-slugify-processor
django-slugify-processor v1.11.0 completes the set and rebuilds its documentation around a purpose-built landing page. slugify(), its template filter, and SLUGIFY_PROCESSORS are unchanged.
gp-sphinx
gp-sphinx v0.1.0a38 lets a project say what its MCP tools are in its own words. sphinx-autodoc-fastmcp classified every tool against one fixed vocabulary and rendered a single badge, so a project using different tags had everything badged read-only — including the tools that run commands. Tools are now classified on axes the project declares, drawn from tags, MCP's own ToolAnnotations, or meta, with one badge per axis. Projects on fastmcp_toolsets must move to fastmcp_axes.
Publications

The Tao of tmux
Book on tmux terminal multiplexer
Learn tmux, including:
- Session management
- Window and pane navigation
- Scripting and automation
Language Projects
Unix-like Utilities
Django Projects
Web Projects
Coding around the web
- My ports for the FreeBSD operating system on portscout
- My issues for FreeBSD in Bugzilla
- Software porting from Linux to BSD on my FreeBSD Wiki Page
- Unofficial tally / roster of open source contributions on OpenHub
- GitHub @tony for recent / current coding
Older work — ports, experiments, talks and press from 2013–2017 — is in the attic.
Other
- Leather - PSA on why leather is cool
Donate
Like my open source projects and learning resources? Your support is appreciated!