Homegrown TUI Coding Agent.
Find a file
Drew Galbraith 4831c5d050 Split up input.rs (#58)
Make it a separate module with smaller input files.

Also create a text buffer abstraction.

Reviewed-on: #58
2026-06-16 05:57:19 +00:00
.forgejo/workflows Skeleton for the Coding Agent. (#1) 2026-02-24 19:50:38 +00:00
contrib/models_endpoint Parsing model endpoint. (#52) 2026-06-15 13:32:16 +00:00
docs Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00
scripts Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00
src Split up input.rs (#58) 2026-06-16 05:57:19 +00:00
.gitignore Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00
AGENTS.md Install the binary as sk. (#40) 2026-05-28 06:26:05 +00:00
Cargo.lock Add @ file includes (#57) 2026-06-16 05:26:17 +00:00
Cargo.toml Add @ file includes (#57) 2026-06-16 05:26:17 +00:00
CLAUDE.md Clean up root markdown files. (#37) 2026-05-28 05:59:17 +00:00
DESIGN.md Clean up root markdown files. (#37) 2026-05-28 05:59:17 +00:00
pyproject.toml Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00
README.md Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00
uv.lock Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00
zensical.toml Add README.md and documentation (#49) 2026-06-03 06:05:36 +00:00

Skate Coding Agent Harness

This is a bespoke coding agent harness with a couple of unique features.

The only supported operating system is Linux.

Unique Features

The features below are the driving factors that led me to writing my own harness instead of reusing an already available one.

Modal Editing

The skate TUI is modal and makes heavy use of hotkeys and commands.

The hotkeys are vim-inspired but are not intented to be a one-to-one mapping. Some shortcuts attempt to mirror existing coding agents instead (for instance Ctrl + G to edit a plan).

Zero Tool Confirmations

The skate harness has no concept of a tool confirmation. Instead the agent is given a set of permissions and these are enforced on tool uses, either working or failing transparently.

By default when executing the agent can modify any files in the current directory but has read only access to files in other directories. (This applies to both the builtin read/edit file tools as well as any bash commands that may be executed). Network access can also be toggled on or off.

Standard Features

Model/Provider Selection

The skate harness can work with multiple different model providers via configuration. (Currently only the anthropic API schema is supported).

Plan/Execute Modes

The skate harness has the concept of different modes for a conversation to be in along with different system prompts for each.

Currently there is plan and execute mode. In planning mode the agent is told to create a plan and only given access to write the current plan file along with read access to the rest of the system.

In execute mode, the agent is provided a pointer to the created plan file and write access to the current directory.

Usage

Start by cloning the repository to your machine

git clone https://git.tiramisu.one/drew/skate.git
# OR for JJ
jj git clone https://git.tiramisu.one/drew/skate.git

Running for test:

cargo run

Installing:

cargo install --path .
skate

To view the documentation locally, run:

uv run docs

AI Usage

Almost all of the code in this project was produced by LLMs and reviewed by a human. The top level architecture is fairly scrutinized while individual functions and unit tests are not.

This README file and all documentation is human written.