Skip to content

About yen

yen is for complete fleets: many machines, many people, services that span hosts, environments with their own rules. Advanced and complex fleets, that a person can still read and understand.

yen also treats agents as first-class members of the team that runs the infrastructure. An agent reads the same queries as a person: the schema, the errors, why an aspect is active. It proposes a change as data, the fleet stages it, checks the rules across machines, and refuses it with the reason. Nothing reaches a machine unchecked.

For people

Four words: kinds, scopes, aspects, sinks. Plain Nix data. Every rule of how content moves is a sink you can read.

For agents

Every answer is JSON-safe data. Changes are staged, checked by invariants, and limited by grants. An MCP server answers.

yen is the latest step of a line of projects, each one a lesson for the next.

flowchart LR
  vix["vic/vix: vic's machines"] --> den["denful/den"]
  den --> gen["sini's gen-* libs"]
  den --> exp["vic's experiments: denful/nest, ned, dnzl"]
  gen --> ren["vic/ren"]
  exp --> ren
  ren --> yen["vic/yen"]
ProjectWhat it gave
vic/vixa real fleet: vic’s machines, homes and dev environments. Today it runs on yen.
denful/denaspects: configuration as features that land where they apply
sini’s gen-* libsthe libraries of Den’s next version (den-hoag on Gen): scopes, graphs, laws
denful/nest, ned, dnzlvic’s experiments: Nest, CSS-like rules over a tree; Ned, inspired by Cycle.js
vic/renthe fleet template that yen’s reference fleet models
vic/yenqueries instead of merges, Cycle.js sources and sinks, Nix builtins only

The reference fleet shows every capability of Den, den-hoag and clan, and the advanced patterns of real fleets (vix, sini’s and others), each with a check. Contributing says how to help.

Contribute Community Sponsor