Handwork

v0.0.9 · made by Connor Love

A coding agent for the terminal, written in Zig.

Give it a task in a project. It reads the code, makes changes, runs your checks, and reports what changed.

npm install -g handwork
Read the Docs

The npm package supports macOS on Apple Silicon. You can build other targets from source.

A task in Handwork

This recording uses Handwork 0.0.9 in light mode. The project has a broken slug function and two tests.

  1. 01
    Describe the fix

    The prompt names the required behavior and test command.

  2. 02
    Review the work

    Handwork reads the files, explains the bug, and edits one line.

  3. 03
    Check the result

    Handwork runs node test.js. Both tests pass.

A recording of the Handwork terminal app. The user enters a task. Handwork reads slug.js and test.js, then explains the bug.

Open the full-size viewer to read the terminal output. Recorded in the interactive terminal app. Idle waits are shortened. The terminal output has not been rewritten.

Recorded task

Inspect

A recording of the Handwork terminal app. The user enters a task. Handwork reads slug.js and test.js, then explains the bug.

Scroll to inspect the recording at full size.

1

file changed

5

tool calls

2

tests passed

0

test exit code

Read the task and result

The task asked Handwork to trim the input, lowercase it, and replace one or more spaces with one hyphen. Handwork changed slug.js and ran node test.js. The command printed 2 tests passed and exited with code 0.

02

Recorded benchmark results

The repository has three coding task pilots. Each attempt used a fresh workspace, rotated agent order, and an independent verifier.

Task
5 attempts per agent, 300 second limit
Async search, original interleaved series
AgentComplete fixesMedian timeTool callsInput tokensOutput tokensPeak agent RSS
handwork baseline 5 / 5 58.7 s 12.2 58,877 1,111 41.8 MiB
OpenCode 5 / 5 79.9 s 17.8 60,458 1,913 757.2 MiB
Codex 5 / 5 32.9 s 5.0 79,195 684 227.5 MiB

Bars use the largest value in each column as 100%. Token and tool-call figures are means per attempt. Bar length shows magnitude, not an overall score.

Handwork used less sampled agent memory. Codex had the lower median completion time.

The machine was an Apple M4 Pro with 24 GiB of memory and macOS 26.5.2. The runs used gpt-6-astra with low reasoning and a 272,000 token context limit.

The table reports frozen builds, not current releases. Time includes model inference, network requests, and tool execution. RSS excludes hosted model memory. Token counts are client-reported. Tool calls count native invocations, and one shell invocation can run multiple commands. These tests do not rank agents across other tasks.

Read the method and source data

Run Handwork in a project.

Connect a provider with /provider, choose a model with /model, and enter a task.

Installation and setup