Project

gi

experimental

Go coding agent harness with Piclaw-compatible web UI, append-only turn engine, and go-ai inference.

Overview

Gi is a coding agent built on go-ai, shaped by lessons learned from Pi, Piclaw, and Vibes. It combines a Go turn engine, SQLite-backed state, a Piclaw-compatible web UI, and provider-backed inference into a single workspace-centric agent harness. Extensibility comes from two embedded scripting engines: go-joker for Clojure and goja for JavaScript, allowing tools and workflows to be written in either language without recompiling.

How it works

The core is an append-only turn engine backed by SQLite: turns, messages, and events are stored in a local database, then streamed to the frontend over SSE. Inference goes through go-ai, with auth loaded from Pi-compatible config and prompts sourced from AGENTS.md. The web UI reuses Piclaw's TypeScript source verbatim, with Gi-specific api.ts and app.ts adapters wiring the existing component tree into Gi's REST and SSE endpoints. Scripting extensions are loaded at startup from the workspace — Clojure scripts run through an embedded go-joker interpreter (with full interop to Go host functions), while JavaScript scripts run through goja.

Features
🧠
go-ai inference

Unified provider layer with streaming and GitHub Copilot enterprise token exchange.

🗃
SQLite-backed turn engine

Append-only turns, messages, and events with queueing, cancelation, and replayable state.

🖥
Piclaw-compatible web UI

Piclaw TypeScript source reused verbatim with Gi-specific API/entry adapters.

🧪
Clojure scripting via go-joker

Embed Clojure scripts as tools and workflows — go-joker's IR bytecode interpreter runs 527× faster than tree-walking, with full interop to Go host functions.

📜
JavaScript scripting via goja

ES5.1+ scripting engine for lightweight tool extensions without a Node dependency.

📁
Workspace-centric

Reads AGENTS.md, operates against a workspace root, and exposes workspace file APIs.

Architecture
Piclaw web UI verbatim TS source Pi-compatible config auth.json · AGENTS.md Gi API layer REST + SSE + files Turn engine append-only · cancel · replay go-joker Clojure goja JavaScript SQLite state store go-ai multi-provider inference Models Copilot · OpenAI · Anthropic SSE Go coding agent — Piclaw UI + go-ai inference + Clojure/JS scripting
Posts