zarlcode / zkit — Open-source coding harness and Go agent toolkit

3 min read Original article ↗

ZARLMONO / ZARLCODE + ZKIT

OPEN SOURCE / MIT / GO

A coding agent you can run.
A harness you can build on.

zarlcode is a terminal AI coding agent. zkit is the Go toolkit underneath it.

Use zarlcode to read code, make changes, run tests, and review diffs. If you’re building your own agent in Go, zkit provides the same runner, tools, and provider adapters as importable packages.

zarlcode runs on your machine. Connect it to a hosted provider or a local model server. The code is MIT licensed; hosted providers charge separately for model usage.

01 / WHERE TO START

Using zarlcode or building with zkit

The CLI and Go libraries are maintained in the same repository. You can use either independently.

02 / ARCHITECTURE

How zarlcode uses zkit

The model requests actions. The harness—the code around it—prepares each request, runs the tools, records what happened, and stops the task when it finishes or reaches a limit.

DEPENDENCIES POINT DOWNWARD
  1. APPLICATIONS

    zarlcode · swebench-eval · your app

    The user interface, settings, tasks, and saved sessions.

  2. ZKIT / AGENT

    runner + task management

    Calling models and tools, checking calls and results, shortening history, and running sub-agents.

  3. ZKIT / AI

    providers + tools

    Model API clients, tool definitions, argument schemas, and results.

  4. ZKIT / SUPPORTING PACKAGES

    storage · MCP · vault

    Database access, external tool connections, and credential storage.

What belongs to zarlcode?

zarlcode handles the terminal interface, workspace settings, provider setup, and saving and resuming sessions. It uses zkit to run tasks. The runner has no dependency on the terminal UI.

Where are the coding tools configured?

The agent/coderunner package sets up coding tools and guardrails for both zarlcode and the evaluation driver. For an agent that does something else, use the general runner and register your own tools.

Can I use just part of zkit?

Yes. The provider clients and tool packages do not depend on the agent runner. You can call a model or use the tool registry without running an agent.

Follow a task through the runtime ↗

03 / USING ZARLCODE

Working on a change

Follow model responses, tool calls, and command output in the timeline. Open the working set to inspect changed files, diffs, and running processes.

01PLAN

Investigate in Plan mode

Read and search the codebase without edits or shell execution. Work out the approach before allowing changes.

Shift + TabSwitch between Plan and Build

02BUILD

Make and verify a change

Enable file edits and commands. Follow tool calls and test output as the agent works in your workspace.

Ctrl + WOpen the working set

03INSPECT

Review the result

Inspect changed files, diffs, command output, and tracked processes. A model saying “done” is not a substitute for review.

Ctrl + FExplore workspace files

zarlcode — ~/greeting-demo

LOCAL SESSION

zarlcode reviewing the greeting-demo refactor: one changed file, unchanged behavior, and a passing test.

RECORDING / Plan, edit, test, and inspect a diff.

04 / RUN IT LOCALLY

Install zarlcode.

The first launch creates local configuration and opens provider setup in the TUI. Choose a hosted provider or connect to a model server you run yourself.

Adapters include Anthropic, OpenAI, Gemini, DeepSeek, Ollama, and llama.cpp. Local session storage does not mean local inference: hosted providers receive model requests.

Providers and credentials ↗

01 / INSTALL WITH HOMEBREW

brew install zarldev/tap/zarlcode

02 / LAUNCH IN YOUR WORKSPACE

cd /path/to/your/workspace && zarlcode

Configure a provider in the TUI with Ctrl + S. Local models require a separately running model server.

Build mode edits files and runs commands with the current user's privileges. Review changes and use an isolated environment for untrusted work. Read the safety guide ↗

05 / CONTRIBUTING

Working on the project

zarlcode and zkit are MIT licensed. If you find a bug, open an issue with the steps to reproduce it. For code or documentation changes, the contributing guide covers setup and checks to run before submitting a pull request.