Skip to content
View kzsh's full-sized avatar

Block or report kzsh

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
kzsh/README.md

Projects

  • orka - LLM coding agents in isolated containers
  • pi extensions and skills - client additions and agent behaviour for pi
  • recall - shell history in SQLite
  • xorc - LLM-generated text adventure
  • Other tools - Linear client, tmux attach, markdown navigation

orka

getorka.dev - run LLM coding agents in isolated containers. Mount what they need; nothing else is reachable.

A session sees the paths you mount and nothing else: not $HOME, no credentials from the environment, no shell history, no write access to /. Files inside a mounted project can be shadowed with empty read-only stubs, so mounting a repository does not have to mean handing over its .env.

Toolchain paths and environment variables are reused through named presets. orka --preset rust mounts the Rust paths; presets stack when a project needs more than one, and always-on presets live in config.yaml.

Supported
Agents pi, claude-code, codex
Engines Docker, Podman, Apple container (alpha), bubblewrap (alpha)
Platforms Linux (alpha), macOS (alpha)

Alpha, and predominantly vibe-coded. The source is currently closed; kzsh/orka carries the docs and release binaries, and orka.nvim runs orka -f <current-buffer> in a Neovim terminal split.

pi extensions and skills

Additions to the pi coding agent, in two kinds.

Extensions change the client. pi-burn tracks cost per request as context grows: a status-bar breakdown by token type, a braille sparkline of the session's history, a /burn report, and a --burn-budget that colours the graph as spend approaches the limit. pi-vi puts vim modal editing in the input editor, with normal and insert modes, counts, operators, and motions. pi-alt adds Alt+Enter as a newline shortcut.

Skills change the agent's behaviour. Each is a single SKILL.md, loaded when the task matches its description: git, markdown, python, rust, typescript, and partial-stage, which stages selected changes within a file when git add -p cannot split a hunk finely enough.

recall

github.com/kzsh/recall - record shell commands into SQLite for later recall. I wanted part of atuin without all the rest.

recall log runs from PROMPT_COMMAND and stores each command line with its timestamp, working directory, session, host, exit code, and wall-clock duration measured in PS0. recall search filters on any of those - --cwd ., --since 7d, --failed, --unique - and --null output feeds fzf --read0 for a picker over the current directory's successful commands. recall sql streams arbitrary statements against the schema when the filters are not enough.

Rust, with a bundled SQLite trimmed to what the tool calls.

xorc

github.com/kzsh/xorc - a text adventure whose world is generated by an LLM.

The map is a graph in SQLite, built as it is walked. Leave a room in a direction that has no exit yet and the model decides whether the path opens somewhere new or loops back to a room you have already seen, reasoning from the nearby graph, the distance travelled, and the time of day. Rooms remember what happened in them; actions can change one permanently, create items, or reveal a passage. Compass directions and verbs like take and inspect are parsed directly; anything else is either mapped onto an existing action or interpreted freeform.

Other tools

  • linear-cli - client for the Linear GraphQL API. linear graphql is the primitive; a few subcommands (issue, team, project, viewer) sit on top of it.
  • ta - attach to a tmux session. One session attaches directly, several open an fzf picker, and a number, name, or substring argument skips the list when it resolves to one session.
  • markdown-navigation - follow markdown links in Neovim with <C-]>, including heading and line anchors. Remote .md URLs are fetched to a cache and opened in a buffer; GitHub blob URLs are rewritten to raw first.

Pinned Loading

  1. xorc xorc Public

    A text adventure game where the world is generated via LLM

    Rust

  2. orka.nvim orka.nvim Public

    Lua 1

  3. recall recall Public

    Record shell commands into SQLite for later recall

    Rust

  4. pi-vi pi-vi Public

    TypeScript

  5. pi-burn pi-burn Public

    Tracks cost-per-request acceleration in pi sessions

    TypeScript

  6. linear-cli linear-cli Public

    Rust