diff --git a/index.html b/index.html
index 059915e..af77639 100644
--- a/index.html
+++ b/index.html
@@ -26,7 +26,7 @@
-
+
@@ -476,6 +476,14 @@ dibs
github.com/hivecommons/dibs
+
+
+
+ Crux v0.1.0
+ The agent runtime inside Hive, split out for reuse. It starts AI coding agents, sends them work, and restarts or pauses them when they stall. Early software.
+ github.com/hivecommons/crux
+
+
diff --git a/llms.txt b/llms.txt
index 308e44e..e2bbfe1 100644
--- a/llms.txt
+++ b/llms.txt
@@ -13,6 +13,7 @@ Hive Commons also maintains Spektacular (Spek), a spec-driven workflow tool; the
- [promptargs](https://github.com/hivecommons/promptargs): template arguments for AI prompts; fills `{{variables}}` in prompts for Claude Code, Copilot, Goose, Bob and others.
- [rationguard](https://github.com/hivecommons/rationguard): detects and rebuts rationalization patterns in AI agent output.
- [dibs](https://dibs.hivecommons.dev): contributor attribution layer for the AI-agent era, connecting ideators with hive-managed repositories.
+- [Crux](https://github.com/hivecommons/crux): the agent runtime inside Hive, split out for reuse; starts AI coding agent CLIs in tmux from a YAML definition, sends them work, and restarts or pauses agents that stall. First release v0.1.0 (early software).
## Supported agents and inference engines
diff --git a/scripts/carousels.test.mjs b/scripts/carousels.test.mjs
index 27cc68c..0349d9d 100644
--- a/scripts/carousels.test.mjs
+++ b/scripts/carousels.test.mjs
@@ -21,7 +21,7 @@ const HERO_SLIDES = 4;
const HERO_ROTATE_MS = 7000;
const HERO_SWIPE_PX = 48;
const HERO_RESIZE_DEBOUNCE_MS = 80;
-const PROJECT_SLIDES = 7;
+const PROJECT_SLIDES = 8;
const PROJECT_ADVANCE_MS = 6000;
const PROJECT_SCROLL_SETTLE_MS = 450;
const PROJECT_SCROLL_SETTLE_REDUCED_MS = 80;
@@ -652,7 +652,7 @@ test("hero keyboard: a slide without a link receives focus itself (tabindex -1);
// Projects carousel
// ---------------------------------------------------------------------------
-const PROJECT_NAMES = ["Hive", "Spektacular", "dibs", "pluk", "rationguard", "hotshot", "promptargs"];
+const PROJECT_NAMES = ["Hive", "Spektacular", "dibs", "pluk", "rationguard", "hotshot", "promptargs", "Crux"];
const TRACK_OFFSET = 100;
const TRACK_PADDING = 16;
const SLIDE_PITCH = 300;
@@ -708,7 +708,7 @@ function assertProjectSlide(t, i, msg) {
});
}
-test("projects markup: one carousel with seven slides, each with an h3 and a link, controls and dots present", () => {
+test("projects markup: one carousel with eight slides, each with an h3 and a link, controls and dots present", () => {
const html = readFileSync(PAGE, "utf8").replace(/