Project

gi

experimental

Go coding agent 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 in one workspace-centric runtime. Two embedded scripting engines provide extensions: go-joker for Clojure and goja for JavaScript. Tools and workflows can use either language without recompiling Gi.

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, cancellation, and replayable state.

🖥
Piclaw-compatible web UI

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

🧪
Clojure scripting via go-joker

Run Clojure scripts as tools and workflows through go-joker, with access 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