Skip to content
View phall1's full-sized avatar

Block or report phall1

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
phall1/README.md

Patrick Hall. Terminals, networks, and systems.

phall.io  /   writing  /   all source


I build terminals and the machinery around them, mostly in Rust and Zig. The thread through most of it: an agent is a first-class user of a terminal now, not something you paste output into. That changes what the terminal has to be.

terminals

phux    rust A terminal multiplexer, like tmux — shells live in a background server, you split them into panes, you detach, everything survives. The difference is what a pane is: a real terminal emulator inside the server that anything can attach to, so the bundled TUI, a shell script, and an agent all hold the same live pane. It records its own demos too — phux rec, no asciinema, no ffmpeg.

phux-cockpit    zig A native macOS spatial runtime for phux — up to 32 terminals in one GPU surface, each owning its own PTY, emulator, and scrollback, arranged as a pane tree per tab. A single resolve() over that tree is the only source of truth for geometry, shared by the painter, the hit-test tree, and the PTY sizing pump. Splitting, focusing, and resizing never restart a process.

instruments

token-tach    zig A macOS menu-bar tachometer for coding-agent token burn. It reads the session ledgers your agents already write — no proxy, no account, no telemetry — and turns them into an instrument: limit-weighted tokens/minute as the needle, a predicted wall-clock time you hit a limit, projected from the slope of the vendors' own utilization numbers rather than guessed capacities, and a per-agent split so the number resolves into which one is spending it.

phbv    go A terminal UI for beads. It talks to the bd CLI exclusively over bd … --json and never touches the Dolt store underneath, with golden tests pinning that boundary — so a bd upgrade fails CI instead of silently breaking the UI.

systems

cyrs    rust A compiler front end for Cypher and GQL: lex, parse, type-check, lint, format, and lower to a logical plan IR. It deliberately stops there — executing the query is the database's job. Ships as a library, a CLI, and an LSP server.

fella    zig Network containment and identity rotation for hostile networks. All traffic is forced through a WireGuard tunnel inside a dedicated netns with fail-closed iptables; identity artifacts rotate per session. Most tools in this space are shell scripts wrapped in sudo — this one compiles, cross-compiles to bare metal, and has real integration tests.

install

brew tap phall1/tap
brew install phux phui
brew install --cask phux-cockpit token-tach phbv

cyrs is on crates.io: cargo install cyrs-cli

also

  • phui — my fork of ghui by Kit Langton, which is his tool and worth your star. I've added an Actions dashboard, Inbox/Stars/Projects surfaces, and handoff into phux, and I ship standalone binaries through the tap.
  • opentui-browser — a Chromium surface for OpenTUI over the Kitty graphics protocol
  • opencode-worktree — Claude Code-style -w worktrees for OpenCode
  • silent-weights — embedding and extracting payloads from model weights, for AI supply-chain security research
  • dotfiles — chezmoi-managed substrate with a dot-doctor health check

vibes all the way down

Pinned Loading

  1. phux phux Public

    yet another terminal mutiplexer

    Rust 3

  2. token-tach token-tach Public

    tachometer for tokens

    Zig 2

  3. fella fella Public

    Zig

  4. silent-weights silent-weights Public

    Python 2 1

  5. cyrs cyrs Public

    a compiler front end for cypher / gql

    Rust 2

  6. phbv phbv Public

    Go