Repository navigation
Releases
Releases · jkf16m/xg
v0.1.0
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
xgThe 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_COMMANDand
_XG_ADDhanging off the origin for requests that need no project context. - Deterministic before inference.
.gitignoreand.xgignoredecide what a
model is never shown at all. - Context modules. A folder with
.xg/module.jsondeclares what it exposes
and what it imports; once one is selected, itsexposeis a hard bound
enforced by the read itself. - Gated writes.
_XG_EDITis previewed as a real git patch thatgit apply
accepts;_XG_ADDis 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.