<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>The singularity, composed by you. on Tixim</title><link>https://tix.im/</link><description>Recent content in The singularity, composed by you. on Tixim</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tix.im/index.xml" rel="self" type="application/rss+xml"/><item><title>Workflows</title><link>https://tix.im/platform/workflows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/workflows/</guid><description>&lt;p&gt;Not every wish deserves a workflow — the orchestrator routes quick things
straight to an agent. A workflow is what you reach for
when the work is serious: multi-step, reviewable, worth doing the same way
twice. It is a directed acyclic graph of steps, defined in Nix, executed by
the engine with the same discipline a build system applies to derivations.&lt;/p&gt;
&lt;h2 id="defined-in-nix-discovered-from-flakes-hahahugoshortcode17s0hbhb"&gt;Defined in Nix, discovered from flakes &lt;span class="badge-stage badge-shipping"&gt;Shipping&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;A workflow is a flake artifact like everything else in Tixim: a Nix file
that assembles steps, edges, instructions, and tools into a fixture the
daemon discovers from its inventory (&lt;code&gt;tix.workflows.&amp;lt;name&amp;gt;&lt;/code&gt;). Arguments are
templated into steps at run time — paths, branch names, and prior outputs
flow through filters like &lt;code&gt;slugify&lt;/code&gt; and &lt;code&gt;tojson&lt;/code&gt; instead of through string
concatenation in prompts. The recipe is code: versioned, diffable,
reviewable, and shared by pinning a flake.&lt;/p&gt;</description></item><item><title>Services</title><link>https://tix.im/platform/services/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/services/</guid><description>&lt;p&gt;Workflows do the work and then disappear. Everything that must &lt;em&gt;stay&lt;/em&gt; —
state, credentials, listeners, project context — lives in a &lt;strong&gt;service&lt;/strong&gt;:
a long-running component the daemon supervises through a declared
lifecycle. Thirty-three of them ship packaged today, from databases and
proxies to per-project agent instances.&lt;/p&gt;
&lt;h2 id="declared-not-deployed-hahahugoshortcode16s0hbhb"&gt;Declared, not deployed &lt;span class="badge-stage badge-shipping"&gt;Shipping&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;A service is a Nix artifact under the same flake roots as everything else
(&lt;code&gt;services/&lt;/code&gt; next to &lt;code&gt;skills/&lt;/code&gt;, &lt;code&gt;agents/&lt;/code&gt;, &lt;code&gt;harnesses/&lt;/code&gt;). Its
configuration is not a bag of strings: every service carries a settings
schema, and settings are type-checked against it before the service ever
starts. Images are built by nix2container without archives — layers come
straight from the store, so a service image is exactly its closure, bit
for bit, and rebuilds only when its inputs change.&lt;/p&gt;</description></item><item><title>Guilds &amp; trust circles</title><link>https://tix.im/platform/guilds/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/guilds/</guid><description>&lt;p&gt;Package registries ask you to trust an operator. CI badges ask you to trust
a server. Tixim asks you to trust arithmetic: a build is certified when
&lt;strong&gt;independent, economically committed parties reproduce it byte for byte&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="guilds-put-stake-behind-claims-hahahugoshortcode13s0hbhb"&gt;Guilds put stake behind claims &lt;span class="badge-stage badge-building"&gt;Building&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;A guild is a staking collective, modeled on Walrus staking: delegators back a
guild&amp;rsquo;s pool, epochs advance permissionlessly, and commission changes only
take effect two epochs later so delegators can exit at the old rate. One
account can administer at most one guild, and one runner identity can build
for at most one guild per epoch — so &amp;ldquo;independent reproductions&amp;rdquo; are actually
independent, never one machine wearing three hats.&lt;/p&gt;</description></item><item><title>Security</title><link>https://tix.im/platform/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/security/</guid><description>&lt;p&gt;Most agent frameworks bolt security on. Tixim starts from paranoia and
builds outward: every layer assumes the layer inside it is already
compromised.&lt;/p&gt;
&lt;h2 id="the-layers-around-a-step-hahahugoshortcode15s0hbhb"&gt;The layers around a step &lt;span class="badge-stage badge-shipping"&gt;Shipping&lt;/span&gt;
&lt;/h2&gt;
&lt;figure class="diagram my-10"&gt;
 &lt;div class="diagram-scroll"&gt;
 &lt;svg viewBox="0 0 1000 540" role="img" aria-label="Defense in depth: a workflow step sits inside Landlock closure enforcement, inside seccomp filtering, inside a rootless container, inside an egress proxy with a privacy filter. Beside it, the text path: untrusted text passes a unicleaner sweep for Trojan Source characters, taint flags are recorded, and sinks fail closed."&gt;
 &lt;title&gt;Layers around a step, and the path untrusted text must survive&lt;/title&gt;
 &lt;defs&gt;
 &lt;marker id="arr-dd" viewBox="0 0 8 8" refX="7" refY="4" markerWidth="7" markerHeight="7" orient="auto-start-reverse"&gt;
 &lt;path class="dg-arrow" d="M0,0 L8,4 L0,8 Z" /&gt;
 &lt;/marker&gt;
 &lt;/defs&gt;

 
 &lt;rect class="dg-box-soft" x="30" y="40" width="600" height="460" rx="24" /&gt;
 &lt;text class="dg-micro" x="54" y="70"&gt;Egress — MITM proxy · privacy filter&lt;/text&gt;
 &lt;text class="dg-sub" x="54" y="88"&gt;only allowed domains, PII redacted before it leaves&lt;/text&gt;

 &lt;rect class="dg-box-soft" x="70" y="110" width="520" height="350" rx="20" /&gt;
 &lt;text class="dg-micro" x="94" y="140"&gt;Rootless container — youki&lt;/text&gt;
 &lt;text class="dg-sub" x="94" y="158"&gt;zero ambient authority, no network by default&lt;/text&gt;

 &lt;rect class="dg-box-soft" x="110" y="180" width="440" height="240" rx="18" /&gt;
 &lt;text class="dg-micro" x="134" y="210"&gt;seccomp&lt;/text&gt;
 &lt;text class="dg-sub" x="134" y="228"&gt;hardened syscall tiers&lt;/text&gt;

 &lt;rect class="dg-box-accent" x="150" y="250" width="360" height="130" rx="16" /&gt;
 &lt;text class="dg-micro" x="174" y="280"&gt;Landlock LSM&lt;/text&gt;
 &lt;text class="dg-sub" x="174" y="298"&gt;kernel-enforced: reads only the verified&lt;/text&gt;
 &lt;text class="dg-sub" x="174" y="314"&gt;/nix/store closure, inherited, irrevocable&lt;/text&gt;

 &lt;rect class="dg-box" x="240" y="330" width="180" height="38" rx="10" /&gt;
 &lt;text class="dg-label" x="330" y="354" text-anchor="middle"&gt;your step&lt;/text&gt;

 
 &lt;text class="dg-micro" x="680" y="44"&gt;The text path&lt;/text&gt;

 &lt;rect class="dg-box" x="680" y="60" width="290" height="64" rx="12" /&gt;
 &lt;text class="dg-label" x="696" y="86"&gt;Untrusted text arrives&lt;/text&gt;
 &lt;text class="dg-sub" x="696" y="108"&gt;tool output · web pages · source code&lt;/text&gt;

 &lt;line class="dg-line" x1="825" y1="124" x2="825" y2="166" marker-end="url(#arr-dd)" /&gt;

 &lt;rect class="dg-box" x="680" y="170" width="290" height="80" rx="12" /&gt;
 &lt;text class="dg-label" x="696" y="196"&gt;unicleaner sweep&lt;/text&gt;
 &lt;text class="dg-sub" x="696" y="218"&gt;bidi overrides · zero-width · homoglyphs&lt;/text&gt;
 &lt;text class="dg-sub" x="696" y="234"&gt;(Trojan Source, CVE-2021-42574)&lt;/text&gt;

 &lt;line class="dg-line" x1="825" y1="250" x2="825" y2="292" marker-end="url(#arr-dd)" /&gt;

 &lt;rect class="dg-box" x="680" y="296" width="290" height="64" rx="12" /&gt;
 &lt;text class="dg-label" x="696" y="322"&gt;Taint flags recorded&lt;/text&gt;
 &lt;text class="dg-sub" x="696" y="344"&gt;tix-tainted-string tracks every check&lt;/text&gt;

 &lt;line class="dg-line" x1="825" y1="360" x2="825" y2="402" marker-end="url(#arr-dd)" /&gt;

 &lt;rect class="dg-box-accent" x="680" y="406" width="290" height="64" rx="12" /&gt;
 &lt;text class="dg-label" x="696" y="432"&gt;Sinks fail closed&lt;/text&gt;
 &lt;text class="dg-sub" x="696" y="454"&gt;missing checks stop the pipeline&lt;/text&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;figcaption&gt;Left: what surrounds a running step. Right: what every piece of untrusted text must survive.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;A workflow step never runs on the host. It runs:&lt;/p&gt;</description></item><item><title>The network</title><link>https://tix.im/platform/network/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/network/</guid><description>&lt;p&gt;A flake is the on-chain unit of value: you create an account from a wallet,
enroll your instances through scoped capabilities, publish flakes bound to
encrypted repositories, and release them through multi-guild attestation.
No layer below has an owner you must trust.&lt;/p&gt;
&lt;figure class="diagram my-10"&gt;
 &lt;div class="diagram-scroll"&gt;
 &lt;svg viewBox="0 0 1120 500" role="img" aria-label="Stack map: tixim instances above six pillars — Sui roots and proves, Walrus stores, Seal encrypts, Ika signs, iroh connects, gitrus versions — each listing the artifacts it holds."&gt;
 &lt;title&gt;What each layer of the network actually does&lt;/title&gt;

 &lt;rect class="dg-box" x="30" y="30" width="1060" height="54" rx="14" /&gt;
 &lt;text class="dg-label" x="54" y="63"&gt;Your tixim instances&lt;/text&gt;
 &lt;text class="dg-sub" x="290" y="63"&gt;publish, verify, fetch, sync — no central operator anywhere below&lt;/text&gt;

 &lt;line class="dg-line-dashed" x1="112" y1="84" x2="112" y2="128" /&gt;
 &lt;line class="dg-line-dashed" x1="291" y1="84" x2="291" y2="128" /&gt;
 &lt;line class="dg-line-dashed" x1="470" y1="84" x2="470" y2="128" /&gt;
 &lt;line class="dg-line-dashed" x1="649" y1="84" x2="649" y2="128" /&gt;
 &lt;line class="dg-line-dashed" x1="828" y1="84" x2="828" y2="128" /&gt;
 &lt;line class="dg-line-dashed" x1="1007" y1="84" x2="1007" y2="128" /&gt;

 
 &lt;rect class="dg-box" x="30" y="130" width="165" height="56" rx="12" /&gt;
 &lt;text class="dg-label" x="44" y="154"&gt;Sui&lt;/text&gt;
 &lt;text class="dg-micro dg-accent-text" x="44" y="174"&gt;roots &amp;amp; proves&lt;/text&gt;
 &lt;rect class="dg-box-soft" x="30" y="194" width="165" height="256" rx="12" /&gt;
 &lt;text class="dg-sub" x="44" y="222"&gt;accounts &amp;amp; devices&lt;/text&gt;
 &lt;line class="dg-line" x1="44" y1="238" x2="181" y2="238" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="44" y="266"&gt;flake registry&lt;/text&gt;
 &lt;line class="dg-line" x1="44" y1="282" x2="181" y2="282" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="44" y="310"&gt;releases &amp;amp; attestations&lt;/text&gt;
 &lt;line class="dg-line" x1="44" y1="326" x2="181" y2="326" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="44" y="354"&gt;guild stakes &amp;amp; epochs&lt;/text&gt;
 &lt;line class="dg-line" x1="44" y1="370" x2="181" y2="370" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="44" y="398"&gt;cache index&lt;/text&gt;

 
 &lt;rect class="dg-box" x="209" y="130" width="165" height="56" rx="12" /&gt;
 &lt;text class="dg-label" x="223" y="154"&gt;Walrus&lt;/text&gt;
 &lt;text class="dg-micro dg-accent-text" x="223" y="174"&gt;stores&lt;/text&gt;
 &lt;rect class="dg-box-soft" x="209" y="194" width="165" height="256" rx="12" /&gt;
 &lt;text class="dg-sub" x="223" y="222"&gt;model weights&lt;/text&gt;
 &lt;line class="dg-line" x1="223" y1="238" x2="360" y2="238" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="223" y="266"&gt;git pack generations&lt;/text&gt;
 &lt;line class="dg-line" x1="223" y1="282" x2="360" y2="282" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="223" y="310"&gt;experience payloads&lt;/text&gt;
 &lt;line class="dg-line" x1="223" y1="326" x2="360" y2="326" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="223" y="354"&gt;NARs for the cache&lt;/text&gt;
 &lt;line class="dg-line" x1="223" y1="370" x2="360" y2="370" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="223" y="398"&gt;release artifacts&lt;/text&gt;

 
 &lt;rect class="dg-box" x="388" y="130" width="165" height="56" rx="12" /&gt;
 &lt;text class="dg-label" x="402" y="154"&gt;Seal&lt;/text&gt;
 &lt;text class="dg-micro dg-accent-text" x="402" y="174"&gt;encrypts&lt;/text&gt;
 &lt;rect class="dg-box-soft" x="388" y="194" width="165" height="256" rx="12" /&gt;
 &lt;text class="dg-sub" x="402" y="222"&gt;secrets &amp;amp; keys&lt;/text&gt;
 &lt;line class="dg-line" x1="402" y1="238" x2="539" y2="238" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="402" y="266"&gt;private releases&lt;/text&gt;
 &lt;line class="dg-line" x1="402" y1="282" x2="539" y2="282" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="402" y="310"&gt;sealed build digests&lt;/text&gt;
 &lt;line class="dg-line" x1="402" y1="326" x2="539" y2="326" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="402" y="354"&gt;trust-circle shares&lt;/text&gt;
 &lt;line class="dg-line" x1="402" y1="370" x2="539" y2="370" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="402" y="398"&gt;premium content&lt;/text&gt;

 
 &lt;rect class="dg-box" x="567" y="130" width="165" height="56" rx="12" /&gt;
 &lt;text class="dg-label" x="581" y="154"&gt;Ika&lt;/text&gt;
 &lt;text class="dg-micro dg-accent-text" x="581" y="174"&gt;signs · MPC&lt;/text&gt;
 &lt;rect class="dg-box-soft" x="567" y="194" width="165" height="256" rx="12" /&gt;
 &lt;text class="dg-sub" x="581" y="222"&gt;release dWallets&lt;/text&gt;
 &lt;line class="dg-line" x1="581" y1="238" x2="718" y2="238" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="581" y="266"&gt;the author's veto share&lt;/text&gt;
 &lt;line class="dg-line" x1="581" y1="282" x2="718" y2="282" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="581" y="310"&gt;key rotation&lt;/text&gt;
 &lt;line class="dg-line" x1="581" y1="326" x2="718" y2="326" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="581" y="354"&gt;sticky taint lineage&lt;/text&gt;

 
 &lt;rect class="dg-box" x="746" y="130" width="165" height="56" rx="12" /&gt;
 &lt;text class="dg-label" x="760" y="154"&gt;iroh&lt;/text&gt;
 &lt;text class="dg-micro dg-accent-text" x="760" y="174"&gt;connects&lt;/text&gt;
 &lt;rect class="dg-box-soft" x="746" y="194" width="165" height="256" rx="12" /&gt;
 &lt;text class="dg-sub" x="760" y="222"&gt;direct QUIC dial&lt;/text&gt;
 &lt;line class="dg-line" x1="760" y1="238" x2="897" y2="238" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="760" y="266"&gt;iron IPv6 overlay&lt;/text&gt;
 &lt;line class="dg-line" x1="760" y1="282" x2="897" y2="282" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="760" y="310"&gt;guardian-db sync&lt;/text&gt;
 &lt;line class="dg-line" x1="760" y1="326" x2="897" y2="326" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="760" y="354"&gt;QR device pairing&lt;/text&gt;

 
 &lt;rect class="dg-box" x="925" y="130" width="165" height="56" rx="12" /&gt;
 &lt;text class="dg-label" x="939" y="154"&gt;gitrus&lt;/text&gt;
 &lt;text class="dg-micro dg-accent-text" x="939" y="174"&gt;versions&lt;/text&gt;
 &lt;rect class="dg-box-soft" x="925" y="194" width="165" height="256" rx="12" /&gt;
 &lt;text class="dg-sub" x="939" y="222"&gt;encrypted repositories&lt;/text&gt;
 &lt;line class="dg-line" x1="939" y1="238" x2="1076" y2="238" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="939" y="266"&gt;hot deltas on Sui&lt;/text&gt;
 &lt;line class="dg-line" x1="939" y1="282" x2="1076" y2="282" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="939" y="310"&gt;packs on Walrus&lt;/text&gt;
 &lt;line class="dg-line" x1="939" y1="326" x2="1076" y2="326" opacity="0.5" /&gt;
 &lt;text class="dg-sub" x="939" y="354"&gt;tip anchored per flake&lt;/text&gt;

 &lt;text class="dg-sub" x="30" y="482"&gt;every layer is replaceable evidence, not a landlord: state is public or yours, never a provider's.&lt;/text&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;figcaption&gt;Six layers, one rule: Sui holds roots and proofs, everything heavy lives where it is cheap and content-addressed.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id="sui--roots-policy-proofs-hahahugoshortcode14s1hbhb"&gt;Sui — roots, policy, proofs &lt;span class="badge-stage badge-building"&gt;Building&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Small, root-oriented objects anchor everything that must be public and
ordered: accounts and device capabilities (scoped, spend-capped, revocable),
the flake registry, releases and build attestations, guild stakes and
epochs, the cache index, the experience index — and registered service
endpoints with their frontend releases, so a portal like tix.camp loads
exactly what a project published and speaks to exactly the backend the
project registered. Every state change emits an
authenticated event. Heavy data never goes on-chain — Sui is the spine, not
the warehouse.&lt;/p&gt;</description></item><item><title>Evolution</title><link>https://tix.im/platform/evolution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/evolution/</guid><description>&lt;p&gt;Most agent systems forget everything the moment a run ends. Tixim treats
every run as evidence: what worked, what failed, what a human had to fix.
Composed expertise plus compounding memory is the whole bet — intelligence
spent once, dividends forever.&lt;/p&gt;
&lt;figure class="diagram my-10"&gt;
 &lt;div class="diagram-scroll"&gt;
 &lt;svg viewBox="0 0 960 540" role="img" aria-label="Evolution loop: workflow runs emit experiences stored on Walrus and indexed on Sui; distillation turns them into sharper experts, which recompose into better workflows that run again. An ontology gate in the center rejects anything that references what does not exist."&gt;
 &lt;title&gt;Runs leave experiences; experiences sharpen the experts&lt;/title&gt;
 &lt;defs&gt;
 &lt;marker id="arr-ev" viewBox="0 0 8 8" refX="7" refY="4" markerWidth="7" markerHeight="7" orient="auto-start-reverse"&gt;
 &lt;path class="dg-arrow-accent" d="M0,0 L8,4 L0,8 Z" /&gt;
 &lt;/marker&gt;
 &lt;/defs&gt;

 
 &lt;path class="dg-line-accent" d="M585,110 C700,135 745,180 762,230" marker-end="url(#arr-ev)" /&gt;
 &lt;text class="dg-micro" x="688" y="140"&gt;runs emit&lt;/text&gt;
 &lt;path class="dg-line-accent" d="M760,310 C742,368 700,410 592,432" marker-end="url(#arr-ev)" /&gt;
 &lt;text class="dg-micro" x="676" y="416"&gt;distill&lt;/text&gt;
 &lt;path class="dg-line-accent" d="M375,432 C260,410 218,368 199,310" marker-end="url(#arr-ev)" /&gt;
 &lt;text class="dg-micro" x="228" y="416"&gt;recompose&lt;/text&gt;
 &lt;path class="dg-line-accent" d="M198,230 C216,180 260,135 373,110" marker-end="url(#arr-ev)" /&gt;
 &lt;text class="dg-micro" x="216" y="140"&gt;run again&lt;/text&gt;

 
 &lt;rect class="dg-box" x="380" y="54" width="200" height="72" rx="14" /&gt;
 &lt;text class="dg-label" x="480" y="84" text-anchor="middle"&gt;Workflow run&lt;/text&gt;
 &lt;text class="dg-sub" x="480" y="106" text-anchor="middle"&gt;committees do the work&lt;/text&gt;

 &lt;rect class="dg-box" x="660" y="234" width="210" height="72" rx="14" /&gt;
 &lt;text class="dg-label" x="765" y="264" text-anchor="middle"&gt;Experience&lt;/text&gt;
 &lt;text class="dg-sub" x="765" y="286" text-anchor="middle"&gt;payload on Walrus, index on Sui&lt;/text&gt;

 &lt;rect class="dg-box" x="380" y="396" width="200" height="72" rx="14" /&gt;
 &lt;text class="dg-label" x="480" y="426" text-anchor="middle"&gt;Distillation&lt;/text&gt;
 &lt;text class="dg-sub" x="480" y="448" text-anchor="middle"&gt;lessons extracted, privacy-filtered&lt;/text&gt;

 &lt;rect class="dg-box" x="90" y="234" width="210" height="72" rx="14" /&gt;
 &lt;text class="dg-label" x="195" y="264" text-anchor="middle"&gt;Sharper experts&lt;/text&gt;
 &lt;text class="dg-sub" x="195" y="286" text-anchor="middle"&gt;workflows, prompts, policies&lt;/text&gt;

 
 &lt;line class="dg-line-dashed" x1="480" y1="212" x2="480" y2="130" /&gt;
 &lt;line class="dg-line-dashed" x1="546" y1="270" x2="656" y2="270" /&gt;
 &lt;line class="dg-line-dashed" x1="480" y1="328" x2="480" y2="392" /&gt;
 &lt;line class="dg-line-dashed" x1="414" y1="270" x2="304" y2="270" /&gt;
 &lt;polygon class="dg-box-accent" points="480,212 546,270 480,328 414,270" /&gt;
 &lt;text class="dg-label" x="480" y="266" text-anchor="middle"&gt;Ontology gate&lt;/text&gt;
 &lt;text class="dg-sub" x="480" y="286" text-anchor="middle"&gt;only things that exist&lt;/text&gt;

 &lt;text class="dg-sub" x="60" y="512"&gt;intelligence is spent once, at composition time — every loop makes the next run cheaper, not just newer.&lt;/text&gt;
&lt;/svg&gt;

 &lt;/div&gt;
 &lt;figcaption&gt;The loop: runs emit experiences, experiences distill into sharper experts, the ontology gate keeps every claim grounded in what exists.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id="experiences-anchored-hahahugoshortcode12s1hbhb"&gt;Experiences, anchored &lt;span class="badge-stage badge-building"&gt;Building&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Workflow runs, service events, even manual notes can post an &lt;strong&gt;experience&lt;/strong&gt;:
the payload on Walrus, an append-only index entry on the flake — tagged,
sequenced per epoch, readable under the flake&amp;rsquo;s own access policy. That
gives downstream selection something honest to rank by: not stars, not
marketing, but the recorded outcomes of real runs. The privacy filter runs
before anything leaves your instance, and you decide per run whether an
experience is private, project-scoped, or public.&lt;/p&gt;</description></item><item><title>Compute you control</title><link>https://tix.im/platform/compute/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/platform/compute/</guid><description>&lt;p&gt;Today, serious compute means a cloud account and a landlord. The pieces on
this page are Tixim&amp;rsquo;s answer: make strangers&amp;rsquo; hardware safe to use and
strangers&amp;rsquo; workloads safe to host — then nobody needs the landlord.&lt;/p&gt;
&lt;p&gt;The baseline never changes: everything in Tixim is just an instance with
the right service, and it runs anywhere — a laptop, a homelab, a rented
box. &lt;strong&gt;tix.computer&lt;/strong&gt; &lt;span class="badge-stage badge-horizon"&gt;Horizon&lt;/span&gt;
 is the managed home for the
instances you&amp;rsquo;d rather not babysit: high availability and privacy by
default, registered on Sui like every other endpoint — and with nothing
about it you couldn&amp;rsquo;t run yourself. Convenience, not lock-in.&lt;/p&gt;</description></item><item><title>Debug the recipe, not the run</title><link>https://tix.im/blog/vx-maintainer-evolution/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://tix.im/blog/vx-maintainer-evolution/</guid><description>Three months of vx-maintainer development, reconstructed from git history: how every failed workflow run became a patch to the recipe — more caching, more reuse, harder gates — until the runs got boring.</description></item><item><title>Building in the open, before it's ready</title><link>https://tix.im/blog/building-in-the-open-before-its-ready/</link><pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate><guid>https://tix.im/blog/building-in-the-open-before-its-ready/</guid><description>Why there is a landing page before there is a release, and what the first one will actually contain.</description></item><item><title>About</title><link>https://tix.im/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/about/</guid><description>&lt;p&gt;&lt;strong&gt;Tixim&lt;/strong&gt; is a multi-agent development environment written in Rust with a
Nix-native build and deployment system. It orchestrates AI-powered workflows —
sequences of steps executed by LLM agents inside sandboxed containers — with
DAG-based scheduling, encrypted secrets, and reproducible Nix-built harness
modules.&lt;/p&gt;
&lt;h2 id="tix-and-tixim"&gt;tix and tixim&lt;/h2&gt;
&lt;p&gt;The pair is a client and a server. &lt;strong&gt;&lt;code&gt;tix&lt;/code&gt;&lt;/strong&gt; is the CLI that users and agents
drive; &lt;strong&gt;&lt;code&gt;tixim&lt;/code&gt;&lt;/strong&gt; is the long-running daemon that exposes HTTP and gRPC APIs and
manages services, workflows, secrets and the model gateway. The whole Rust
workspace uses the &lt;code&gt;tix-&lt;/code&gt; crate prefix, and the mark you see at the top of this
page is the TiX wordmark.&lt;/p&gt;</description></item><item><title>Project statistics</title><link>https://tix.im/stats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tix.im/stats/</guid><description/></item></channel></rss>