Skip to content

Releases

v0.1.0

Choose a tag to compare

@jkf16m jkf16m released this 22 Sep 03:25

First release.

xg is a terminal agent for coding tasks that decides before it writes. You
give it a request; it reads a bounded slice of the project, decides what is
relevant, and then proposes exactly one concrete action — an edit, a new file, a
shell command, or an answer. Anything that changes something is held as a
proposal and waits for ctrl+y.

Install

pipx install xg-project     # or: pip install xg-project
xg

The package is xg-project; the command it installs is xg. PyPI does not
accept the bare name xg, so the distribution carries the suffix and the command
does not.

What is in it

  • A workflow graph you walk, not a chat log. _XG_ORIGIN → _XG_SELECT_MODULE
    → _XG_FILTER → _XG_SORT → _XG_EDIT | _XG_ANSWER, with _XG_COMMAND and
    _XG_ADD hanging off the origin for requests that need no project context.
  • Deterministic before inference. .gitignore and .xgignore decide what a
    model is never shown at all.
  • Context modules. A folder with .xg/module.json declares what it exposes
    and what it imports; once one is selected, its expose is a hard bound
    enforced by the read itself.
  • Gated writes. _XG_EDIT is previewed as a real git patch that git apply
    accepts; _XG_ADD is previewed as a creation patch. The write re-reads the file
    and refuses an ambiguous or stale match.
  • A state view, keyed by node, pruned to the path you are actually on.

Status

Alpha, and honestly so: the graph, the gating and the read path are exercised by
a test suite, but the tool is young. Expect rough edges.