<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>aibox</title><link>https://projectious-work.github.io/aibox/v1.x/</link><description>Recent content on aibox</description><generator>Hugo</generator><language>en</language><atom:link href="https://projectious-work.github.io/aibox/v1.x/index.xml" rel="self" type="application/rss+xml"/><item><title>Base Image</title><link>https://projectious-work.github.io/aibox/v1.x/docs/container/base-image/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/container/base-image/</guid><description>&lt;h1 id="base-image"&gt;Base Image&lt;/h1&gt;
&lt;p&gt;The base image is the foundation for all aibox container flavors. It provides a complete, opinionated development environment built on &lt;strong&gt;Debian Trixie Slim&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="installed-tools"&gt;Installed Tools&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Tool&lt;/th&gt;
					&lt;th&gt;Version / Source&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;tmux&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Terminal multiplexer&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Yazi&lt;/td&gt;
					&lt;td&gt;25.4.8 (prebuilt binary from GitHub releases)&lt;/td&gt;
					&lt;td&gt;Terminal file manager&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Vim&lt;/td&gt;
					&lt;td&gt;Debian package (&lt;code&gt;vim&lt;/code&gt; + &lt;code&gt;vim-runtime&lt;/code&gt;)&lt;/td&gt;
					&lt;td&gt;Editor&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Git&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Version control&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Claude CLI&lt;/td&gt;
					&lt;td&gt;Official install script&lt;/td&gt;
					&lt;td&gt;AI assistant&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ripgrep (&lt;code&gt;rg&lt;/code&gt;)&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Fast recursive search (grep replacement)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;fd&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Fast file finder (find replacement)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;bat&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Syntax-highlighting cat replacement&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;eza&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Modern ls replacement with git integration&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;zoxide&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Smarter cd that learns your habits&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;fzf&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Fuzzy finder for files, history, and more&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;delta&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Syntax-highlighting diff viewer (used by git)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;starship&lt;/td&gt;
					&lt;td&gt;Prebuilt binary&lt;/td&gt;
					&lt;td&gt;Minimal, fast shell prompt with context&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;curl&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;HTTP client&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;jq&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;JSON processor&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;less&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Pager&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;unzip&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Archive extraction&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;iproute2&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Network route/interface inspection for status segments&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;iputils-ping&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;ICMP latency checks for status segments&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;bash-completion&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Shell completions&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ca-certificates&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;TLS root certificates&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;locales&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Locale support (en_US.UTF-8)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;tzdata&lt;/td&gt;
					&lt;td&gt;Debian package&lt;/td&gt;
					&lt;td&gt;Timezone data&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;GitHub CLI (&lt;code&gt;gh&lt;/code&gt;) and lazygit are provided by the optional
&lt;a href="../addons/tool-bundles.md#git-ui"&gt;&lt;code&gt;git-ui&lt;/code&gt; addon&lt;/a&gt;, not by the base image. Add
&lt;code&gt;[addons.git-ui.tools]&lt;/code&gt; to &lt;code&gt;aibox.toml&lt;/code&gt; when a project needs those tools.&lt;/p&gt;</description></item><item><title>CLI Commands</title><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/cli-commands/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/cli-commands/</guid><description>&lt;h1 id="cli-commands"&gt;CLI Commands&lt;/h1&gt;
&lt;p&gt;aibox uses a small verb/resource grammar. &lt;code&gt;aibox.toml&lt;/code&gt; is desired state. The
established v0 runtime uses &lt;code&gt;apply&lt;/code&gt; then &lt;code&gt;up&lt;/code&gt;; v1 orchestration uses &lt;code&gt;image&lt;/code&gt;,
&lt;code&gt;deploy&lt;/code&gt;, &lt;code&gt;up&lt;/code&gt; (apply-only), and an explicit &lt;code&gt;connect&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="global-options"&gt;Global Options&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Option&lt;/th&gt;
					&lt;th&gt;Environment Variable&lt;/th&gt;
					&lt;th&gt;Default&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--config &amp;lt;PATH&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&amp;ndash;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;./aibox.toml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Path to configuration file&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--log-level &amp;lt;LEVEL&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;AIBOX_LOG_LEVEL&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;info&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Log verbosity&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;-y&lt;/code&gt;, &lt;code&gt;--yes&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&amp;ndash;&lt;/td&gt;
					&lt;td&gt;&amp;ndash;&lt;/td&gt;
					&lt;td&gt;Skip confirmation prompts&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="core-workflow"&gt;Core Workflow&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox init my-app --harness claude --addon python
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox apply
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox up --legacy-runtime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox down --legacy-runtime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="command-grammar"&gt;Command Grammar&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox init &lt;span class="o"&gt;[&lt;/span&gt;NAME&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox apply &lt;span class="o"&gt;[&lt;/span&gt;RESOURCE&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;NAME&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox up &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox down &lt;span class="o"&gt;[&lt;/span&gt;--legacy-runtime&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox image &amp;lt;build&lt;span class="p"&gt;|&lt;/span&gt;inspect&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;--output human&lt;span class="p"&gt;|&lt;/span&gt;json&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox deploy &amp;lt;plan&lt;span class="p"&gt;|&lt;/span&gt;apply&lt;span class="p"&gt;|&lt;/span&gt;status&lt;span class="p"&gt;|&lt;/span&gt;destroy&lt;span class="p"&gt;|&lt;/span&gt;logs&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox connect &amp;lt;NAME&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;-- COMMAND...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox get &amp;lt;RESOURCE&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox describe &amp;lt;RESOURCE&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;NAME&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox &lt;span class="nb"&gt;set&lt;/span&gt; &amp;lt;TARGET&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;VALUE&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;EXTRA...&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox edit &amp;lt;RESOURCE&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox reset &amp;lt;RESOURCE&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox delete &amp;lt;RESOURCE&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;NAME&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox create &amp;lt;RESOURCE&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;NAME&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox self &amp;lt;ACTION&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="init"&gt;init&lt;/h2&gt;
&lt;p&gt;Create &lt;code&gt;aibox.toml&lt;/code&gt;, generated devcontainer files, &lt;code&gt;.aibox-home/&lt;/code&gt;, context scaffolding, and provider pointer files.&lt;/p&gt;</description></item><item><title>Context Overview</title><link>https://projectious-work.github.io/aibox/v1.x/docs/context/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/context/overview/</guid><description>&lt;h1 id="context-system-overview"&gt;Context System Overview&lt;/h1&gt;
&lt;p&gt;The aibox context system controls what project-level instructions and
structured working memory are available to AI harnesses. It has two modes:
&lt;code&gt;processkit&lt;/code&gt;, which installs the full structured context layer, and
&lt;code&gt;harness-only&lt;/code&gt;, which keeps only the generated container and harness setup.&lt;/p&gt;
&lt;p&gt;As of &lt;strong&gt;v0.16.0&lt;/strong&gt;, the system is split across two cleanly separated projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aibox&lt;/strong&gt; owns the &lt;strong&gt;container&lt;/strong&gt; — devcontainers, addons, the CLI, the
install/apply/migrate machinery, and the project skeleton (&lt;code&gt;aibox.lock&lt;/code&gt;,
&lt;code&gt;.gitignore&lt;/code&gt;, provider pointer files, and, in harness-only mode, a minimal
&lt;code&gt;AGENTS.md&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/projectious-work/processkit"&gt;processkit&lt;/a&gt;&lt;/strong&gt; owns the
&lt;strong&gt;content&lt;/strong&gt; — every skill, every primitive schema, every state machine, the
canonical &lt;code&gt;AGENTS.md&lt;/code&gt; template, the processes, and the package YAMLs that
compose them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The user-side &lt;code&gt;context/&lt;/code&gt; directory is shared territory in processkit mode.&lt;/strong&gt;
aibox creates it, processkit fills it, and the user edits in place. An
immutable upstream snapshot is kept under
&lt;code&gt;context/templates/processkit/&amp;lt;version&amp;gt;/&lt;/code&gt; for the three-way diff that
&lt;code&gt;aibox apply&lt;/code&gt; uses to detect upstream changes versus local edits.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;AI coding agents like Claude operate best when they understand not just the
code, but the project&amp;rsquo;s goals, decisions, and current state. Without structure,
this information ends up scattered across chat histories, stale comments, and
the developer&amp;rsquo;s memory.&lt;/p&gt;</description></item><item><title>Create a local project with processkit</title><link>https://projectious-work.github.io/aibox/v1.x/docs/tutorials/local-project-processkit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/tutorials/local-project-processkit/</guid><description>&lt;h1 id="create-a-local-project-with-processkit"&gt;Create a local project with processkit&lt;/h1&gt;
&lt;p&gt;This tutorial starts with an empty directory, deploys a workspace through the
v1 Compose backend, and installs the processkit v1 process base into the
project. Both products are prereleases, so the example uses exact versions.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;Install a Docker- or Podman-compatible Compose runtime, &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, and
&lt;code&gt;sha256sum&lt;/code&gt;. Then install the exact aibox v1 release shown on the
&lt;a href="https://github.com/projectious-work/aibox/releases"&gt;releases page&lt;/a&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://raw.githubusercontent.com/projectious-work/aibox/main/scripts/install.sh &lt;span class="p"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1.0.0-alpha.1 bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If that release is not published yet, use the latest v1 prerelease shown on the
releases page and substitute its version below.&lt;/p&gt;</description></item><item><title>Installation</title><link>https://projectious-work.github.io/aibox/v1.x/docs/getting-started/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/getting-started/installation/</guid><description>&lt;h1 id="installation"&gt;Installation&lt;/h1&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;aibox requires a container runtime and a Compose-compatible provider on your
host machine.&lt;/p&gt;
&lt;h3 id="podman-recommended"&gt;Podman (recommended)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# macOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install podman
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;podman machine init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;podman machine start
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Fedora / RHEL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dnf install podman podman-compose
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Ubuntu / Debian&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install podman podman-compose
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="docker"&gt;Docker&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# macOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install --cask docker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Then launch Docker Desktop&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Linux — follow the official install guide&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# https://docs.docker.com/engine/install/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;aibox auto-detects which runtime is available. If both are installed, Podman takes priority.
OrbStack works through its Docker-compatible runtime and Compose integration.&lt;/p&gt;</description></item><item><title>Overview</title><link>https://projectious-work.github.io/aibox/v1.x/docs/addons/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/addons/overview/</guid><description>&lt;h1 id="addons"&gt;Addons&lt;/h1&gt;
&lt;p&gt;aibox uses the Debian runtime image family (&lt;code&gt;base-debian-v0.26.x&lt;/code&gt; for legacy releases, &lt;code&gt;base-debian-runtime-v0.27.0+&lt;/code&gt; after the image-tag cutover) with &lt;strong&gt;31 composable addons&lt;/strong&gt; that install language runtimes, tool bundles, documentation frameworks, and AI coding agents into your container.&lt;/p&gt;
&lt;h2 id="managing-addons"&gt;Managing Addons&lt;/h2&gt;
&lt;h3 id="via-cli"&gt;Via CLI&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# See all available addons&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox get addon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Add an addon (updates aibox.toml and runs apply)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox &lt;span class="nb"&gt;set&lt;/span&gt; addon python
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove an addon&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox delete addon python
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# View addon details (tools, versions)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox describe addon rust
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Emit the machine-readable addon catalog index&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox describe addon-catalog -o json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="via-aiboxtoml"&gt;Via aibox.toml&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;python&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;python&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;uv&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0.12.0&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rust&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;rustc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1.97.1&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;clippy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;rustfmt&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;node&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;26&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;pnpm&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;11.18.0&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Each addon has &lt;strong&gt;default-enabled tools&lt;/strong&gt; that are included automatically, and &lt;strong&gt;optional tools&lt;/strong&gt; you can enable explicitly. Tools with version selection let you pick from curated, tested versions.&lt;/p&gt;</description></item><item><title>Overview</title><link>https://projectious-work.github.io/aibox/v1.x/docs/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/overview/</guid><description>&lt;h1 id="overview"&gt;Overview&lt;/h1&gt;
&lt;p&gt;aibox creates reproducible, AI-ready development workspaces from one project
configuration file. It is not a new container runtime and it is not a process
framework. It is the glue that turns a declared project shape into a standard
devcontainer, selected tool bundles, AI harness configuration, and either a
processkit-backed context layer or a harness-only project skeleton.&lt;/p&gt;
&lt;h2 id="the-short-version"&gt;The Short Version&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox init my-app --harness claude --addon python
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox apply
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;aibox init&lt;/code&gt; writes the initial project contract. &lt;code&gt;aibox apply&lt;/code&gt; reconciles that
contract into generated files and content. &lt;code&gt;aibox up&lt;/code&gt; starts or attaches to the
workspace.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/configuration/</guid><description>&lt;h1 id="configuration"&gt;Configuration&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;aibox.toml&lt;/code&gt; is the single source of truth for an aibox project. All generated files derive from it.&lt;/p&gt;
&lt;h2 id="full-specification"&gt;Full Specification&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;aibox&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;project_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-app&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Human-readable project name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;profile&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;human-dev&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Usage profile: human-dev or headless-runner&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-app&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;hostname&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-app&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container hostname&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container user (default: aibox)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;release_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;latest&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# aibox image/CLI version, or &amp;#34;latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;base&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;debian&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Base image flavor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;devcontainer_json&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.devcontainer/devcontainer.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;docker_compose&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.devcontainer/docker-compose.yml&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;docker_compose_override&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.devcontainer/docker-compose.override.yml&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;dockerfile&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.devcontainer/Dockerfile&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;dockerfile_local&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.devcontainer/Dockerfile.local&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;local_env&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.aibox-local.env&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lifecycle&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;post_create_command&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;npm install&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Command to run after container creation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;keepalive&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="c"&gt;# Periodic DNS keepalive for idle network timeouts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resource_thresholds&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;memory_mib_warn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4096&lt;/span&gt; &lt;span class="c"&gt;# Optional warning limit for cgroup memory usage in MiB&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;process_count_warn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt; &lt;span class="c"&gt;# Optional warning limit for total live processes; 0 disables&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;processkit_mcp_python_warn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="c"&gt;# Optional warning limit for live Python MCP server processes; 0 disables&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;oom_kill_warn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c"&gt;# Optional warning threshold for cgroup OOM kill count&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;NODE_ENV&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;development&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Project-wide env vars (non-secret; use .aibox-local.toml for secrets)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extra_volumes&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;~/.aws&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Host path (~ expanded)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;target&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/home/aibox/.aws&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;read_only&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;processkit&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# processkit | harness-only&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;packages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;product&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# processkit package selection&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;processkit&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://github.com/projectious-work/processkit.git&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;latest&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# newest stable release, &amp;#34;unset&amp;#34;, or a real tag (including an explicit prerelease)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;src_path&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;src&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# branch = &amp;#34;main&amp;#34; # Optional; tarball-first, branch as fallback&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# release_asset_url_template = &amp;#34;...&amp;#34; # Optional, for non-GitHub hosts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;processkit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;schema_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1.0.0&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Context schema version (semver)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;python&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# Addon: Python runtime&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;python&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;uv&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0.12.0&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rust&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# Addon: Rust toolchain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;rustc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1.97.1&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;clippy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;rustfmt&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;git-ui&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# Optional: GitHub CLI and lazygit&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;gh&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;lazygit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;integrations&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;github&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;credential_helper&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;auto&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# auto | gh | none&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;model_providers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;anthropic&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# Optional provider env hints (API key + base URL)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="c"&gt;# Harness order is list order&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;codex&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# { harness = &amp;#34;claude&amp;#34;, enable = true, install = true },&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;canonical&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;AGENTS.md&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;provider_mode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;pointer&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# pointer | full&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Team-shared MCP servers merged into all generated MCP client configs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# (see also [[mcp.servers]] in .aibox-local.toml for personal servers)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;servers&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-team-tool&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Unique server name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;command&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;npx&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Executable to run&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;args&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-y&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;@acme/team-server&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# Arguments&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# [ai.mcp.servers.env] # Optional environment variables&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# API_KEY = &amp;#34;...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;theme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;gruvbox&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Theme family; concrete legacy names still parse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;auto&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Theme mode: auto, light, dark&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;default&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Starship preset (8 options)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;layout&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;dev&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# tmux layout (4 options)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;extended&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# extended | plain | disabled (legacy: powerline -&amp;gt; extended)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Row lists are ordered. Removing a name disables that status element.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Allowed line1-left entries:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - session: current tmux session name and prefix/copy-mode state&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - windows: tmux window list&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Allowed line1-right / line2-left / line2-right entries:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - aibox_log: aibox log health counts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - aibox_oom: cgroup OOM kill counters&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - aibox_proc: live process count versus configured process warning limit&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - aibox_ai: detected AI-agent/runtime process count&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - aibox_mcp: processkit/MCP daemon and server process status (processkit mode)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - aibox_mig: pending processkit migration count (processkit mode)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - weather: weather segment from tmux-powerkit&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - uptime: container uptime&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - datetime: local date/time&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - git: current repository branch/status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - github: GitHub/repository integration status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - kubernetes: Kubernetes context/status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - terraform: Terraform/OpenTofu workspace/status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - cloud: local cloud CLI/context status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - cloudstatus: networked public provider status checks; opt-in, not enabled by default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - hostname: container hostname&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - externalip: detected external IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - ssh: SSH agent/key status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - netspeed: network throughput&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - ping: network latency&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - cpu: CPU usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - loadavg: system load average&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - memory: memory usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - swap: swap usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - disk: disk usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - gpu: GPU status when available&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - modelstatus_&amp;lt;provider&amp;gt;: per-provider AI status segment; explicit layout entries render even when model-provider auto-add is off&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;line1-left&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;session&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;windows&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;line1-right&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;aibox_log&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox_oom&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox_proc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox_ai&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox_mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox_mig&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;weather&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uptime&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;datetime&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;line2-left&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;git&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;kubernetes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;terraform&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;line2-right&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hostname&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;externalip&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ssh&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;netspeed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ping&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cpu&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;loadavg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;memory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;swap&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;disk&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;gpu&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Visible headers/icons for status segments. Layout controls which segments appear;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# this section controls how those segments are labeled once rendered.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Values may be plain ASCII labels or symbols. ASCII is safest across terminals;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Nerd Font / Powerline symbols are compact but require the user&amp;#39;s terminal font.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Practical symbol candidates from Nerd Fonts. Keep icons distinct across&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# configured PowerKit segments so adjacent status cells remain scannable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-log&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󱖫&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-oom&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰍛󰚌&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-proc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰊚&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-ai&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󱙺&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-mcp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰌹&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-mig&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰚰&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;kubernetes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󱃾&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cloud&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰅣&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cloud-aws&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰸏&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cloud-gcp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰬠&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cloud-azure&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰠅&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cloud-multi&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰅤&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;uptime&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;netspeed&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;netspeed-download&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰇚&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;netspeed-upload&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;󰕒&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;separators&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# PowerKit separator style. Options: normal | rounded | slant | slantup | trapezoid | flame | pixel | honeycomb | none&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;style&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;rounded&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Edge separators may use a different style at status boundaries.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;edge-style&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;rounded&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Spacing between elements. Options: false | true | both | windows | plugins&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;elements-spacing&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;both&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;refresh&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Refresh/caching controls for extended tmux status.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# interval-seconds: tmux redraw cadence. Higher values reduce shell process churn.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# aibox-metrics-cache-ttl-seconds: LOG/OOM/PROC/AI/MCP/MIG cache TTL.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# netspeed-cache-ttl-seconds: network throughput cache TTL.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# kubernetes-cache-ttl-seconds: local kubeconfig context cache TTL.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# cloud-cache-ttl-seconds: local cloud CLI/context cache TTL.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# github-cache-ttl-seconds: local repo + GitHub issue/PR/discussion count cache TTL.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;interval-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;aibox-metrics-cache-ttl-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;netspeed-cache-ttl-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;kubernetes-cache-ttl-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cloud-cache-ttl-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;github-cache-ttl-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forge&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Exact GitHub SSH hostnames and aliases recognized by the Forge segment.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;github-hosts&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;github.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github-work&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model-providers&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Optional networked model-provider health segments for the extended tmux status line.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Each configured provider becomes one PowerKit segment when enabled, for example OAI ✓ or ANT 󰚌.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# enabled: false avoids auto-adding all configured providers; explicit layout entries still render.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# cache-ttl-seconds: minimum time between provider status requests per provider.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# timeout-seconds: per-request HTTP timeout so status rendering cannot hang tmux.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# show-ok: true shows healthy providers with ✓; false hides healthy providers and only shows degraded/unknown/outage.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;enabled&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cache-ttl-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;timeout-seconds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;show-ok&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Provider entries:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - provider: stable key from the model roster (openai, anthropic, google, mistral, deepseek, cohere, xai, alibaba, aws, meta, microsoft, minimax, moonshot, nvidia, xiaomi, zai)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - label: short category header shown in the status segment; use text or a symbol that your font supports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - checks: any of overall, models, harness; worst status wins (outage &amp;gt; degraded &amp;gt; unknown &amp;gt; ok)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - status-url: JSON status endpoint; Statuspage summary APIs are supported, Google uses incidents.json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# - overall-components/model-components/harness-components: optional component-name filters for providers with componentized status APIs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Symbols: ✓ ok, 󰀦 degraded, 󰚌 outage, ? unknown.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model-providers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;label&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;OAI&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;checks&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;models&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;harness&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;status-url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://status.openai.com/api/v2/summary.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;model-components&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Responses&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Chat Completions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Embeddings&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Realtime&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Images&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harness-components&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;CLI&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Codex API&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Codex Web&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model-providers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;anthropic&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;label&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;ANT&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;checks&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;models&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;harness&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;status-url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://status.claude.com/api/v2/summary.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;model-components&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Claude API&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harness-components&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Claude Code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tmux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model-providers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;google&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;label&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;GOOG&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;checks&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;models&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;status-url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://status.cloud.google.com/incidents.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;enabled&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="c"&gt;# Enable audio bridging&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;backend&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;pulseaudio&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Audio bridge backend&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="c"&gt;# Install container audio tools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;pulse_server&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;tcp:host.docker.internal:4714&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="section-reference"&gt;Section Reference&lt;/h2&gt;
&lt;h3 id="aibox"&gt;[aibox]&lt;/h3&gt;
&lt;p&gt;Top-level project metadata.&lt;/p&gt;</description></item><item><title>Container Configuration</title><link>https://projectious-work.github.io/aibox/v1.x/docs/container/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/container/configuration/</guid><description>&lt;h1 id="container-configuration"&gt;Container Configuration&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;[container]&lt;/code&gt; section in &lt;code&gt;aibox.toml&lt;/code&gt; controls per-project container settings.&lt;/p&gt;
&lt;h2 id="container-identity"&gt;Container Identity&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-project&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container name (used by compose)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;hostname&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-project&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container hostname&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aibox&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Container user (default: aibox)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;user&lt;/code&gt; field determines the non-root user inside the container. The default &lt;code&gt;aibox&lt;/code&gt; user (UID 1000) is recommended. Set &lt;code&gt;user = &amp;quot;root&amp;quot;&lt;/code&gt; only if needed for specific tools.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;aibox apply&lt;/code&gt; generates a Compose file with an explicit top-level project name,
an explicit service image, and &lt;code&gt;container_name = [container].name&lt;/code&gt;. Docker
Desktop, OrbStack, and Compose UIs therefore group aibox projects by their
project/container names instead of under a generic &lt;code&gt;devcontainer&lt;/code&gt; identity.&lt;/p&gt;</description></item><item><title>Language Runtimes</title><link>https://projectious-work.github.io/aibox/v1.x/docs/addons/language-runtimes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/addons/language-runtimes/</guid><description>&lt;h1 id="language-runtime-addons"&gt;Language Runtime Addons&lt;/h1&gt;
&lt;p&gt;Language runtimes install compilers, interpreters, and package managers into your container.&lt;/p&gt;
&lt;h2 id="python"&gt;Python&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;python&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;python&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c"&gt;# 3.12, 3.13, 3.14&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;uv&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0.12.0&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c"&gt;# 0.7, 0.11.10, 0.11.11, 0.11.15, 0.11.19, 0.11.26, 0.11.32, 0.12.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# poetry = { version = &amp;#34;2.4.1&amp;#34; } # Optional: 1.8, 2.0, 2.4.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# pdm = { version = &amp;#34;2.28.0&amp;#34; } # Optional: 2.22, 2.26.9, 2.27.0, 2.28.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Installs Python, pip, venv, and &lt;a href="https://github.com/astral-sh/uv"&gt;uv&lt;/a&gt; (fast package manager). The base image pins uv to the curated default instead of following a floating &lt;code&gt;latest&lt;/code&gt; image tag. Poetry and PDM are available but not enabled by default.&lt;/p&gt;</description></item><item><title>Maintenance</title><link>https://projectious-work.github.io/aibox/v1.x/docs/contributing/maintenance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/contributing/maintenance/</guid><description>&lt;h1 id="maintenance"&gt;Maintenance&lt;/h1&gt;
&lt;p&gt;Internal procedures for building, testing, documenting, and releasing aibox.
The canonical step-by-step release note remains in &lt;code&gt;context/notes/&lt;/code&gt;; this page
is the public contributor summary.&lt;/p&gt;
&lt;h2 id="development-checks"&gt;Development Checks&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; cli &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cargo fmt -- --check
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; cli &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cargo clippy --all-targets -- -D warnings
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; cli &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cargo &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The helper script wraps the same checks:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./scripts/maintain.sh &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="documentation-site"&gt;Documentation Site&lt;/h2&gt;
&lt;p&gt;The public docs live in &lt;code&gt;docs-site/&lt;/code&gt; and use Hugo with the Docsy theme.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git submodule update --init --recursive docs-site/themes/docsy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm --prefix docs-site ci
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./scripts/maintain.sh docs-serve
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./scripts/build-docs.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;./scripts/build-docs.sh&lt;/code&gt; is the local verification build. It writes the static
site to &lt;code&gt;docs-site/public/&lt;/code&gt; and prints Hugo render warnings.&lt;/p&gt;</description></item><item><title>New Project</title><link>https://projectious-work.github.io/aibox/v1.x/docs/getting-started/new-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/getting-started/new-project/</guid><description>&lt;h1 id="new-project"&gt;New Project&lt;/h1&gt;
&lt;p&gt;This guide walks through creating a new project from scratch with aibox.&lt;/p&gt;
&lt;h2 id="initialize-the-project"&gt;Initialize the Project&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir my-app &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; my-app
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox init my-app --harness claude --addon python
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;init&lt;/code&gt; command accepts these options:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Option&lt;/th&gt;
					&lt;th&gt;Default&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--base&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;debian&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Base image&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;NAME&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Current directory name&lt;/td&gt;
					&lt;td&gt;Container and hostname&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--profile&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;human-dev&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Usage profile: &lt;code&gt;human-dev&lt;/code&gt; or warning-mode &lt;code&gt;headless-runner&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--harness&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;claude&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;AI harnesses (can be repeated): &lt;code&gt;claude&lt;/code&gt;, &lt;code&gt;codex&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, &lt;code&gt;aider&lt;/code&gt;, etc.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--addon&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;Addon names (can be repeated): &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;rust&lt;/code&gt;, &lt;code&gt;node&lt;/code&gt;, &lt;code&gt;go&lt;/code&gt;, &lt;code&gt;latex&lt;/code&gt;, etc.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--theme&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;gruvbox&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Theme family&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--context-mode&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;processkit&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Context layer: &lt;code&gt;processkit&lt;/code&gt; or &lt;code&gt;harness-only&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;--processkit-version&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;latest stable tag&lt;/td&gt;
					&lt;td&gt;processkit content release to pin; explicit prerelease pins are supported&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;If you omit options, &lt;code&gt;aibox init&lt;/code&gt; runs interactively and prompts for each value.&lt;/p&gt;</description></item><item><title>Prompt Presets</title><link>https://projectious-work.github.io/aibox/v1.x/docs/customization/prompts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/customization/prompts/</guid><description>&lt;h1 id="starship-prompt-presets"&gt;Starship Prompt Presets&lt;/h1&gt;
&lt;p&gt;aibox includes 8 &lt;a href="https://starship.rs"&gt;Starship&lt;/a&gt; prompt presets that work with any theme. Set a preset in &lt;code&gt;aibox.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;default&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="available-presets"&gt;Available Presets&lt;/h2&gt;
&lt;h3 id="default"&gt;default&lt;/h3&gt;
&lt;p&gt;Full-featured two-line prompt with directory, git branch/status, language versions, and command duration. Uses Nerd Font symbols.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; ~/workspace/myproject main ✓ v1.75.0 took 2s
❯
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h3 id="plain"&gt;plain&lt;/h3&gt;
&lt;p&gt;Same information as &lt;code&gt;default&lt;/code&gt; but uses ASCII characters only — no Nerd Font or special font needed. Works in any terminal.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;~/workspace/myproject [main +1 !2] [v1.75.0] took 2s
&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Good for remote SSH sessions or environments without font customization.&lt;/p&gt;</description></item><item><title>Skill Selection</title><link>https://projectious-work.github.io/aibox/v1.x/docs/context/process-packages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/context/process-packages/</guid><description>&lt;h1 id="skill-selection"&gt;Skill Selection&lt;/h1&gt;
&lt;p&gt;New aibox projects list the standard processkit operating skills explicitly in
&lt;code&gt;[skills].include&lt;/code&gt;. This makes skill selection a direct comment/uncomment
workflow in &lt;code&gt;aibox.toml&lt;/code&gt; without relying on legacy package tiers.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;[skills].include&lt;/code&gt; for explicit additions and &lt;code&gt;[skills].exclude&lt;/code&gt; for
explicit removals:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;skills&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;include&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;pk-doctor&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;status-briefing&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;exclude&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c"&gt;# &amp;#34;skill-to-omit&amp;#34;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Legacy package tiers (&lt;code&gt;minimal&lt;/code&gt;, &lt;code&gt;managed&lt;/code&gt;, &lt;code&gt;software&lt;/code&gt;, &lt;code&gt;research&lt;/code&gt;, &lt;code&gt;product&lt;/code&gt;)
are still accepted for compatibility under &lt;code&gt;[context].packages&lt;/code&gt; when
&lt;code&gt;[context].mode = &amp;quot;processkit&amp;quot;&lt;/code&gt;, but explicit &lt;code&gt;[skills]&lt;/code&gt; selection is the
preferred control surface.&lt;/p&gt;</description></item><item><title/><link>https://projectious-work.github.io/aibox/v1.x/docs/migrations/v0-to-v1-deployments/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/migrations/v0-to-v1-deployments/</guid><description>&lt;h1 id="moving-from-v0-containers-to-v1-deployments"&gt;Moving from v0 containers to v1 deployments&lt;/h1&gt;
&lt;p&gt;v1 deployment orchestration is opt-in. A v0 project remains a v0 container project until its &lt;code&gt;aibox.toml&lt;/code&gt; explicitly enables &lt;code&gt;[orchestration]&lt;/code&gt;; &lt;code&gt;aibox apply&lt;/code&gt;, &lt;code&gt;up&lt;/code&gt;, and &lt;code&gt;down&lt;/code&gt; from the v0 lifecycle do not discover, modify, or remove a v1 deployment receipt.&lt;/p&gt;
&lt;h2 id="prepare-the-configuration"&gt;Prepare the configuration&lt;/h2&gt;
&lt;p&gt;Preview first. This reads only &lt;code&gt;aibox.toml&lt;/code&gt;, reports digests rather than printing configuration contents, and does not contact a container runtime or a cluster:&lt;/p&gt;</description></item><item><title>Audio Support</title><link>https://projectious-work.github.io/aibox/v1.x/docs/container/audio/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/container/audio/</guid><description>&lt;h1 id="audio-support"&gt;Audio Support&lt;/h1&gt;
&lt;p&gt;aibox can enable audio support for voice-capable tools. Audio is bridged from
the container to the host via PulseAudio over TCP, and the required container
packages live in the optional &lt;code&gt;audio-voice&lt;/code&gt; addon.&lt;/p&gt;
&lt;h2 id="why-audio-matters"&gt;Why Audio Matters&lt;/h2&gt;
&lt;p&gt;Claude Code supports voice interaction. For this to work inside a container, audio output (and optionally input) must be forwarded to the host&amp;rsquo;s sound system. aibox handles this by installing PulseAudio client utilities in the container and connecting them to a PulseAudio server running on the host.&lt;/p&gt;</description></item><item><title>Custom Themes</title><link>https://projectious-work.github.io/aibox/v1.x/docs/customization/custom-themes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/customization/custom-themes/</guid><description>&lt;h1 id="creating-custom-themes"&gt;Creating Custom Themes&lt;/h1&gt;
&lt;p&gt;aibox ships 7 built-in themes. You can create a custom theme by adding entries to the CLI source code.&lt;/p&gt;
&lt;h2 id="theme-structure"&gt;Theme Structure&lt;/h2&gt;
&lt;p&gt;Each theme defines colors for 5 tools:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Tool&lt;/th&gt;
					&lt;th&gt;Config Location&lt;/th&gt;
					&lt;th&gt;Format&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;tmux&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.config/tmux/themes/&amp;lt;name&amp;gt;.conf&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;tmux style settings&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Vim&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.vim/colors/&amp;lt;name&amp;gt;.vim&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Vim colorscheme&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Yazi&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.config/yazi/theme.toml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;TOML with hex colors&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;lazygit&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.config/lazygit/config.yml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;YAML gui.theme section&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Starship&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.config/starship.toml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;TOML with palette&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="color-mapping"&gt;Color Mapping&lt;/h2&gt;
&lt;p&gt;A theme needs these terminal color slots for tmux:&lt;/p&gt;</description></item><item><title>E2E Test Catalogue</title><link>https://projectious-work.github.io/aibox/v1.x/docs/contributing/e2e-tests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/contributing/e2e-tests/</guid><description>&lt;h1 id="e2e-test-catalogue"&gt;E2E Test Catalogue&lt;/h1&gt;
&lt;p&gt;This page describes every end-to-end and integration test in &lt;code&gt;cli/tests/e2e/&lt;/code&gt;
in plain language. Each entry states the precondition and the expected outcome,
followed by a reference to the exact test function for traceability.&lt;/p&gt;
&lt;h2 id="test-tiers"&gt;Test tiers&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Tier&lt;/th&gt;
					&lt;th&gt;Where it runs&lt;/th&gt;
					&lt;th&gt;What it needs&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Tier 1&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Local temp directory&lt;/td&gt;
					&lt;td&gt;The compiled &lt;code&gt;aibox&lt;/code&gt; binary only&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Tier 1 + Mock&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Local temp directory&lt;/td&gt;
					&lt;td&gt;Binary + mock &lt;code&gt;docker&lt;/code&gt;/&lt;code&gt;podman&lt;/code&gt; scripts on PATH&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Tier 2&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Remote SSH companion&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;aibox-e2e-testrunner&lt;/code&gt; container reachable (feature flag &lt;code&gt;e2e&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Tier 1 tests run automatically with &lt;code&gt;cargo test&lt;/code&gt;. Tier 2 tests require the
companion container and the &lt;code&gt;--features e2e&lt;/code&gt; flag. The expensive visual matrix
tests are opt-in and are not included in the default Tier 2 command.&lt;/p&gt;</description></item><item><title>Existing Project</title><link>https://projectious-work.github.io/aibox/v1.x/docs/getting-started/existing-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/getting-started/existing-project/</guid><description>&lt;h1 id="existing-project"&gt;Existing Project&lt;/h1&gt;
&lt;p&gt;This guide covers adding aibox to a project that already exists.&lt;/p&gt;
&lt;h2 id="create-aiboxtoml"&gt;Create aibox.toml&lt;/h2&gt;
&lt;p&gt;If your project does not yet have a &lt;code&gt;aibox.toml&lt;/code&gt;, create one manually or use &lt;code&gt;init&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; my-existing-project
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox init my-existing-project --harness claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;init will not overwrite&lt;/div&gt;
&lt;p&gt;If &lt;code&gt;aibox.toml&lt;/code&gt; already exists, &lt;code&gt;init&lt;/code&gt; will refuse to run. Either delete the existing file or edit it directly.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;If you prefer to write it by hand:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;aibox&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;project_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-existing-project&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-existing-project&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;hostname&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-existing-project&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;release_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;base&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;debian&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;processkit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;packages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;product&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;processkit&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://github.com/projectious-work/processkit.git&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;processkit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;schema_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1.0.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;claude&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;enabled&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For a container-and-harness-only adoption with no processkit content, use:&lt;/p&gt;</description></item><item><title>Layouts</title><link>https://projectious-work.github.io/aibox/v1.x/docs/customization/layouts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/customization/layouts/</guid><description>&lt;h1 id="layouts"&gt;Layouts&lt;/h1&gt;
&lt;p&gt;aibox ships four tmux layouts. Harness placement follows &lt;code&gt;[ai].harness_order&lt;/code&gt;:
the 1st harness is the first enabled harness in that order, then the 2nd, 3rd,
and so on. Enabled harnesses missing from &lt;code&gt;harness_order&lt;/code&gt; are appended in
canonical order.&lt;/p&gt;
&lt;p&gt;Generated layouts can include an extended PowerKit status bar with host,
network, development, cloud, resource, and aibox runtime segments.&lt;/p&gt;
&lt;h2 id="available-layouts"&gt;Available Layouts&lt;/h2&gt;
&lt;h3 id="ai"&gt;ai&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Window&lt;/th&gt;
					&lt;th&gt;Contents&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1 · work&lt;/td&gt;
					&lt;td&gt;left 50%: yazi · right 50%: 1st harness&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2 · ai&lt;/td&gt;
					&lt;td&gt;all further harnesses, split as full-height even horizontal panes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3 · lazygit&lt;/td&gt;
					&lt;td&gt;lazygit, when &lt;code&gt;git-ui&lt;/code&gt; selects &lt;code&gt;lazygit&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3/4 · shell&lt;/td&gt;
					&lt;td&gt;bash&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="dev"&gt;dev&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Window&lt;/th&gt;
					&lt;th&gt;Contents&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1 · work&lt;/td&gt;
					&lt;td&gt;left 50%: yazi top 50% / 1st harness bottom 50% · right 50%: shell&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2 · lazygit&lt;/td&gt;
					&lt;td&gt;lazygit, when &lt;code&gt;git-ui&lt;/code&gt; selects &lt;code&gt;lazygit&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2/3 · ai&lt;/td&gt;
					&lt;td&gt;all further harnesses, split as full-height even horizontal panes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;final · shell&lt;/td&gt;
					&lt;td&gt;bash&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="focus"&gt;focus&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Window&lt;/th&gt;
					&lt;th&gt;Contents&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1 · files&lt;/td&gt;
					&lt;td&gt;yazi&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2..n · harness name&lt;/td&gt;
					&lt;td&gt;one fullscreen window per harness in &lt;code&gt;harness_order&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;next · lazygit&lt;/td&gt;
					&lt;td&gt;lazygit, when &lt;code&gt;git-ui&lt;/code&gt; selects &lt;code&gt;lazygit&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;final · shell&lt;/td&gt;
					&lt;td&gt;bash&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="cowork"&gt;cowork&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Window&lt;/th&gt;
					&lt;th&gt;Contents&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1 · work&lt;/td&gt;
					&lt;td&gt;left 50%: yazi · right 50%: shell&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2 · ai&lt;/td&gt;
					&lt;td&gt;all harnesses, split as full-height even horizontal panes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3 · lazygit&lt;/td&gt;
					&lt;td&gt;lazygit, when &lt;code&gt;git-ui&lt;/code&gt; selects &lt;code&gt;lazygit&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="setting-the-default-layout"&gt;Setting The Default Layout&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;layout&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;dev&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Options: &lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;focus&lt;/code&gt;, &lt;code&gt;cowork&lt;/code&gt;, &lt;code&gt;ai&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Local Config (.aibox-local.toml)</title><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/local-config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/local-config/</guid><description>&lt;h1 id="local-config-aibox-localtoml"&gt;Local Config (.aibox-local.toml)&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;.aibox-local.toml&lt;/code&gt; is a personal, gitignored overlay that sits next to &lt;code&gt;aibox.toml&lt;/code&gt; in the project root. It exists for secrets and per-developer settings that must never be committed to version control — API tokens, personal credential paths, and similar values that differ between contributors.&lt;/p&gt;
&lt;h2 id="why-it-exists"&gt;Why it exists&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aibox.toml&lt;/code&gt; is committed and shared across the team. That&amp;rsquo;s the right place
for project-wide settings: container name, context mode, processkit version
when processkit is enabled, addons, shared environment variables, and so on.
But tokens and personal bind mounts don&amp;rsquo;t belong there. &lt;code&gt;.aibox-local.toml&lt;/code&gt;
gives every developer a private escape valve without requiring &lt;code&gt;.gitignore&lt;/code&gt;
discipline on every secret.&lt;/p&gt;</description></item><item><title>Migration</title><link>https://projectious-work.github.io/aibox/v1.x/docs/context/migration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/context/migration/</guid><description>&lt;h1 id="migration"&gt;Migration&lt;/h1&gt;
&lt;p&gt;When the aibox context schema evolves between versions, existing projects may
need to update their context files. The &lt;code&gt;aibox doctor&lt;/code&gt; command helps identify
schema gaps and produces review artifacts under &lt;code&gt;.aibox/migration/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Separate processkit content and generated-runtime changes are surfaced as
Migration entities under &lt;code&gt;context/migrations/&lt;/code&gt; in processkit mode.&lt;/p&gt;
&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;v0.16.0 — `context/AIBOX.md` is gone&lt;/div&gt;
&lt;p&gt;Pre-v0.16 releases generated a &lt;code&gt;context/AIBOX.md&lt;/code&gt; &amp;ldquo;universal baseline&amp;rdquo; file
on every &lt;code&gt;aibox apply&lt;/code&gt;. That file has been &lt;strong&gt;removed&lt;/strong&gt; as part of the
aibox⇄processkit split. The canonical agent entry document is now &lt;code&gt;AGENTS.md&lt;/code&gt;
at the project root. In processkit mode it is rendered from processkit
scaffolding; in harness-only mode it is a minimal aibox-owned file. In both
modes &lt;code&gt;aibox init&lt;/code&gt; writes it only when missing.&lt;/p&gt;</description></item><item><title>Tool Bundles</title><link>https://projectious-work.github.io/aibox/v1.x/docs/addons/tool-bundles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/addons/tool-bundles/</guid><description>&lt;h1 id="tool-bundle-addons"&gt;Tool Bundle Addons&lt;/h1&gt;
&lt;p&gt;Tool bundles install infrastructure, orchestration, and cloud CLI tools.&lt;/p&gt;
&lt;h2 id="git-ui"&gt;Git UI&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;git-ui&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;gh&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; &lt;span class="c"&gt;# GitHub CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;lazygit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; &lt;span class="c"&gt;# Interactive Git TUI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;git-ui&lt;/code&gt; addon is optional. Select it when a project needs GitHub CLI
automation or lazygit inside the container; omit it to avoid installing those
tools. This aibox repo may enable it for maintenance workflows such as release
checks and GitHub issue/release work, but downstream projects do not need it by
default.&lt;/p&gt;</description></item><item><title>Cheatsheet</title><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/cheatsheet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/cheatsheet/</guid><description>&lt;h1 id="keyboard-shortcuts"&gt;Keyboard Shortcuts&lt;/h1&gt;
&lt;p&gt;Quick reference for all tools in the aibox environment. Press the tab for the tool you need.&lt;/p&gt;
&lt;p&gt;!!! tip &amp;ldquo;In-app help&amp;rdquo;
- &lt;strong&gt;tmux:&lt;/strong&gt; The status bar always shows available keys for the current mode
- &lt;strong&gt;Yazi:&lt;/strong&gt; Press &lt;code&gt;~&lt;/code&gt; or &lt;code&gt;F1&lt;/code&gt; to see all keybindings
- &lt;strong&gt;Vim:&lt;/strong&gt; Type &lt;code&gt;:help&lt;/code&gt; for built-in help
- &lt;strong&gt;lazygit:&lt;/strong&gt; Press &lt;code&gt;?&lt;/code&gt; to see context-sensitive keybindings when the optional &lt;code&gt;git-ui&lt;/code&gt; addon is enabled&lt;/p&gt;
&lt;p&gt;=== &amp;ldquo;tmux&amp;rdquo;&lt;/p&gt;</description></item><item><title>Custom Prompts</title><link>https://projectious-work.github.io/aibox/v1.x/docs/customization/custom-prompts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/customization/custom-prompts/</guid><description>&lt;h1 id="creating-custom-prompts"&gt;Creating Custom Prompts&lt;/h1&gt;
&lt;p&gt;aibox generates Starship prompt configurations from the selected preset and theme. You can customize the prompt by editing the generated config.&lt;/p&gt;
&lt;h2 id="generated-config-location"&gt;Generated Config Location&lt;/h2&gt;
&lt;p&gt;After &lt;code&gt;aibox apply&lt;/code&gt;, the Starship config is at:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;.aibox-home/.config/starship.toml
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="manual-customization"&gt;Manual Customization&lt;/h2&gt;
&lt;p&gt;Edit &lt;code&gt;.aibox-home/.config/starship.toml&lt;/code&gt; directly with any valid &lt;a href="https://starship.rs/config/"&gt;Starship configuration&lt;/a&gt;. Changes take effect immediately in new shell sessions.&lt;/p&gt;
&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Apply overwrites&lt;/div&gt;
&lt;p&gt;&lt;code&gt;aibox apply&lt;/code&gt; regenerates &lt;code&gt;starship.toml&lt;/code&gt; from the preset and theme. To preserve manual edits, either avoid running apply or back up your config first.&lt;/p&gt;</description></item><item><title>Documentation Frameworks</title><link>https://projectious-work.github.io/aibox/v1.x/docs/addons/documentation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/addons/documentation/</guid><description>&lt;h1 id="documentation-framework-addons"&gt;Documentation Framework Addons&lt;/h1&gt;
&lt;p&gt;Documentation addons install static site generators and documentation tools.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Addon&lt;/th&gt;
					&lt;th&gt;Tool&lt;/th&gt;
					&lt;th&gt;Install Method&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs-mkdocs&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;MkDocs + Material theme&lt;/td&gt;
					&lt;td&gt;uv&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs-zensical&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Zensical&lt;/td&gt;
					&lt;td&gt;uv&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs-docusaurus&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Docusaurus&lt;/td&gt;
					&lt;td&gt;npm&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs-starlight&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Starlight (Astro)&lt;/td&gt;
					&lt;td&gt;npm&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs-mdbook&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;mdBook&lt;/td&gt;
					&lt;td&gt;Binary download&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs-hugo&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Hugo Extended&lt;/td&gt;
					&lt;td&gt;Binary download&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Current curated pins are Docusaurus 3.10.1, Hugo 0.164.0, mdBook 0.5.4,
MkDocs 1.6.1 with Material 9.7.7, and Zensical 0.0.52. Starlight remains
scaffolded through the upstream &lt;code&gt;create-starlight&lt;/code&gt; package.&lt;/p&gt;
&lt;h2 id="example"&gt;Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;docs-docusaurus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;docusaurus&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After &lt;code&gt;aibox apply&lt;/code&gt;, the documentation tool is available inside the container. Initialize your docs project as usual (e.g., &lt;code&gt;npx create-docusaurus@latest docs classic&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>File Preview</title><link>https://projectious-work.github.io/aibox/v1.x/docs/container/file-preview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/container/file-preview/</guid><description>&lt;h1 id="file-preview"&gt;File Preview&lt;/h1&gt;
&lt;p&gt;aibox containers ship with Yazi preview configuration and can install
TUI-native preview tools for raster images, vector graphics, PDF, archives, and
video through optional addons. Several formats also support &lt;strong&gt;watch-mode
preview&lt;/strong&gt;, where the rendered output updates automatically whenever the source
file changes.&lt;/p&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;There are two independent preview mechanisms:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Mechanism&lt;/th&gt;
					&lt;th&gt;When to use&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="#yazi-file-preview"&gt;Yazi file preview&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Browsing files — preview appears automatically in the right panel as you navigate&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="#standalone-tui-viewers"&gt;Standalone TUI viewers&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Viewing a specific file in a pane, or piping output from a build tool&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Watch-mode (live-updating preview) is available via the standalone tools — see &lt;a href="#watch-mode-preview"&gt;Watch-Mode Preview&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Claude</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-claude/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-claude/</guid><description>&lt;h1 id="claude-code"&gt;Claude Code&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://claude.ai"&gt;Claude Code&lt;/a&gt; by Anthropic is a terminal-based AI coding assistant. It&amp;rsquo;s the default provider in aibox.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;claude&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;aibox apply&lt;/code&gt;, then inside the container:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude &lt;span class="c1"&gt;# Launches Claude Code CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On first launch, Claude prompts for authentication via browser login.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Claude&amp;rsquo;s configuration, cache, and account state are persisted under &lt;code&gt;.aibox-home/&lt;/code&gt;
and mounted into the container. aibox preserves Claude&amp;rsquo;s primary config directory
(&lt;code&gt;.claude/&lt;/code&gt;), top-level account state (&lt;code&gt;.claude.json&lt;/code&gt;), and XDG state/cache
locations used by current Claude Code releases.&lt;/p&gt;</description></item><item><title>Runtime Operations</title><link>https://projectious-work.github.io/aibox/v1.x/docs/container/runtime-operations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/container/runtime-operations/</guid><description>&lt;h1 id="runtime-operations"&gt;Runtime Operations&lt;/h1&gt;
&lt;p&gt;The generated devcontainer is standard Compose output, but the normal workflow
should go through aibox so generated files, runtime home state, and diagnostics
stay aligned.&lt;/p&gt;
&lt;h2 id="start-and-attach"&gt;Start and Attach&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox up
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox up --layout focus
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox up --apply
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;aibox up&lt;/code&gt; creates or starts the container and attaches through tmux. Use
&lt;code&gt;--layout&lt;/code&gt; for a one-session layout override. Use &lt;code&gt;--apply&lt;/code&gt; when you want aibox
to reconcile configuration before starting.&lt;/p&gt;
&lt;h2 id="stop-or-remove"&gt;Stop or Remove&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox down
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox delete runtime
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;down&lt;/code&gt; stops the Compose project. &lt;code&gt;delete runtime&lt;/code&gt; removes the container while
preserving project files and &lt;code&gt;.aibox-home/&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Aider</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-aider/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-aider/</guid><description>&lt;h1 id="aider"&gt;Aider&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://aider.chat"&gt;Aider&lt;/a&gt; is an open-source AI pair programming tool that works with multiple LLM providers from the terminal.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;aider&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;aibox apply&lt;/code&gt;, then inside the container:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aider &lt;span class="c1"&gt;# Launches Aider CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="api-key"&gt;API Key&lt;/h2&gt;
&lt;p&gt;Aider requires an API key for the LLM provider you want to use. Set it in your environment:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;ANTHROPIC_API_KEY&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;sk-ant-...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Or for OpenAI:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# OPENAI_API_KEY = &amp;#34;sk-...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alternatively, create a &lt;code&gt;.aider.conf.yml&lt;/code&gt; in &lt;code&gt;.aibox-home/.aider/&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Gemini</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-gemini/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-gemini/</guid><description>&lt;h1 id="gemini"&gt;Gemini&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/google-gemini/gemini-cli"&gt;Gemini CLI&lt;/a&gt; is Google&amp;rsquo;s command-line interface for Gemini AI models.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;gemini&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;aibox apply&lt;/code&gt;, then inside the container:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gemini &lt;span class="c1"&gt;# Launches Gemini CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="api-key"&gt;API Key&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;GOOGLE_API_KEY&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Gemini&amp;rsquo;s configuration is persisted in &lt;code&gt;.aibox-home/.gemini/&lt;/code&gt;, mounted at &lt;code&gt;/home/aibox/.gemini/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="mcp-integration"&gt;MCP Integration&lt;/h2&gt;
&lt;p&gt;Gemini CLI reads &lt;code&gt;.gemini/settings.json&lt;/code&gt;. aibox generates this file automatically on &lt;code&gt;aibox apply&lt;/code&gt;, merging processkit built-in servers in processkit mode, team servers from &lt;code&gt;aibox.toml [ai.mcp]&lt;/code&gt;, and personal servers from &lt;code&gt;.aibox-local.toml [mcp]&lt;/code&gt;.&lt;/p&gt;</description></item><item><title/><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/v1-deployment-boundaries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/v1-deployment-boundaries/</guid><description>&lt;h1 id="v1-deployment-boundaries-and-prerequisites"&gt;V1 deployment boundaries and prerequisites&lt;/h1&gt;
&lt;p&gt;V1 is a deployment control plane for immutable workspace images; it is not a cluster, DNS-zone, ingress-controller, secret-manager, or processkit installer. It compiles typed desired state, records ownership, and asks an already-provisioned backend to reconcile only the resources it owns.&lt;/p&gt;
&lt;h2 id="infrastructure-supplied-by-the-operator"&gt;Infrastructure supplied by the operator&lt;/h2&gt;
&lt;p&gt;Before enabling a Kubernetes target, supply all of the following outside aibox:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a reachable kube context with a namespace aibox is allowed to manage;&lt;/li&gt;
&lt;li&gt;an existing ingress class or gateway class when ingress is configured;&lt;/li&gt;
&lt;li&gt;an existing DNS zone when DNS reconciliation is configured;&lt;/li&gt;
&lt;li&gt;credential &lt;em&gt;references&lt;/em&gt; that the selected backend can resolve, never secret values in &lt;code&gt;aibox.toml&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;an immutable image reference and &lt;code&gt;sha256:&lt;/code&gt; digest;&lt;/li&gt;
&lt;li&gt;a least-privilege identity limited to the target namespace and the selected DNS record scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aibox refuses foreign, unlabeled, digest-mismatched, or missing-record resources during guarded destroy. These checks protect against accidental deletion; they are not a replacement for namespace policy, admission control, or credential rotation.&lt;/p&gt;</description></item><item><title>Mistral</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-mistral/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-mistral/</guid><description>&lt;h1 id="mistral-sdk"&gt;Mistral (SDK)&lt;/h1&gt;
&lt;div class="alert alert-secondary" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;SDK addon — not an interactive CLI&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;ai-mistral&lt;/code&gt; addon installs the &lt;strong&gt;mistralai Python SDK&lt;/strong&gt;, not an interactive coding CLI. It is intended for projects that call the Mistral API programmatically. For an interactive coding experience, use &lt;a href="./ai-claude.md"&gt;Claude&lt;/a&gt;, &lt;a href="./ai-gemini.md"&gt;Gemini&lt;/a&gt;, &lt;a href="./ai-openai.md"&gt;OpenAI Codex&lt;/a&gt;, or &lt;a href="./ai-copilot.md"&gt;Copilot&lt;/a&gt; instead.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://mistral.ai"&gt;Mistral AI&lt;/a&gt; provides large language models via Python SDK.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;model_providers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;mistral&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai-mistral&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mistral&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;mistral&lt;/code&gt; is retained as a legacy harness value for old configs, but it is not
a current interactive CLI harness. Use the addon directly for SDK installs.
Run &lt;code&gt;aibox apply&lt;/code&gt;. Inside the container the &lt;code&gt;mistralai&lt;/code&gt; Python SDK is available
for scripting:&lt;/p&gt;</description></item><item><title>Version-line porting</title><link>https://projectious-work.github.io/aibox/v1.x/docs/contributing/version-line-porting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/contributing/version-line-porting/</guid><description>&lt;h1 id="version-line-porting"&gt;Version-line porting&lt;/h1&gt;
&lt;p&gt;aibox maintains the v0.x and v1.x lines in parallel. A fix landing on either
line must be reconciled with the other line when applicable.&lt;/p&gt;
&lt;p&gt;The release gate compares both maintained branches after the recorded
enforcement baselines in &lt;code&gt;.github/version-line-port-baselines.toml&lt;/code&gt;. Every
non-merge source commit must have a matching port on the target line or an
explicit not-applicable disposition. This derives obligations from Git history,
so it does not depend on labels, manually created issues, or workflow tokens.&lt;/p&gt;</description></item><item><title>OpenAI (Codex CLI)</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-openai/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-openai/</guid><description>&lt;h1 id="openai-codex-cli"&gt;OpenAI Codex CLI&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/openai/codex"&gt;Codex CLI&lt;/a&gt; is OpenAI&amp;rsquo;s open-source terminal coding agent. Built in Rust, GA since April 2025.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;codex&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;aibox apply&lt;/code&gt;, then inside the container:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;codex &lt;span class="c1"&gt;# Launches OpenAI Codex CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="api-key"&gt;API Key&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;sk-...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alternatively, use a ChatGPT Plus/Pro/Team/Enterprise account — Codex prompts for authentication on first launch.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Codex&amp;rsquo;s home-directory state is persisted in &lt;code&gt;.aibox-home/.codex/&lt;/code&gt;, mounted at &lt;code&gt;/home/aibox/.codex/&lt;/code&gt;. This survives devcontainer rebuilds, so device sign-in only needs to be completed once per host cache unless you clear it.&lt;/p&gt;</description></item><item><title>V1 support, deprecation, and retirement</title><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/v1-support-and-retirement/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/v1-support-and-retirement/</guid><description>&lt;h1 id="v1-support-deprecation-and-retirement"&gt;V1 support, deprecation, and retirement&lt;/h1&gt;
&lt;p&gt;V1 prereleases are evaluation releases. Until a stable v1 release satisfies
every candidate-bound readiness gate, v0 remains supported as the stable line.
V1 and v0 may coexist while projects evaluate migration; neither line may
manage or destroy the other line&amp;rsquo;s deployment records or resources.&lt;/p&gt;
&lt;h2 id="product-boundaries"&gt;Product boundaries&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ainfra provisions&lt;/strong&gt; accounts, hosts, networks, clusters, identities, DNS
zones, and other infrastructure, then exposes non-secret target references.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;aibox deploys&lt;/strong&gt; immutable AI workspace images onto existing Compose or
Kubernetes targets. It does not provision infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;processkit owns&lt;/strong&gt; process distribution, installation, migrations, MCP,
skills, schemas, and harness projections. Aibox&amp;rsquo;s v1 integration is disabled
or delegates one opaque request to the processkit CLI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These boundaries are release requirements. The portfolio audit fails if the v1
production path begins interpreting processkit policy or provisioning
infrastructure.&lt;/p&gt;</description></item><item><title>Copilot (GitHub)</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-copilot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-copilot/</guid><description>&lt;h1 id="github-copilot-cli"&gt;GitHub Copilot CLI&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/github/copilot-cli"&gt;GitHub Copilot CLI&lt;/a&gt; is GitHub&amp;rsquo;s terminal coding agent. GA since February 2026, validated as a Dev Container feature.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;copilot&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;aibox apply&lt;/code&gt;, then inside the container:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;copilot /login &lt;span class="c1"&gt;# Authenticate on first launch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;copilot &lt;span class="c1"&gt;# Launches GitHub Copilot CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;A GitHub Copilot subscription (Individual, Business, or Enterprise) is required.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Copilot&amp;rsquo;s configuration is persisted in &lt;code&gt;.aibox-home/.copilot/&lt;/code&gt;, mounted at &lt;code&gt;/home/aibox/.copilot/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Key files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.copilot/config.json&lt;/code&gt; — Copilot settings (overridable via &lt;code&gt;COPILOT_HOME&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcp-integration"&gt;MCP Integration&lt;/h2&gt;
&lt;p&gt;GitHub Copilot CLI reads &lt;code&gt;.mcp.json&lt;/code&gt; (the Claude Code MCP format). aibox generates &lt;code&gt;.mcp.json&lt;/code&gt; automatically on &lt;code&gt;aibox apply&lt;/code&gt;, merging processkit built-in servers in processkit mode, team servers from &lt;code&gt;aibox.toml [ai.mcp]&lt;/code&gt;, and personal servers from &lt;code&gt;.aibox-local.toml [mcp]&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Continue</title><link>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-continue/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/providers/ai-continue/</guid><description>&lt;h1 id="continue-cli"&gt;Continue CLI&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/continuedev/continue"&gt;Continue&lt;/a&gt; is an open-source, provider-agnostic coding agent CLI. Designed for headless environments and containers (Apache 2.0).&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;harnesses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;harness&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;continue&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;aibox apply&lt;/code&gt;, then inside the container:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cn &lt;span class="c1"&gt;# Interactive mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cn -p &lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# Headless/non-interactive mode (great for scripts and CI)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note: the binary is &lt;code&gt;cn&lt;/code&gt;, not &lt;code&gt;continue&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="api-key"&gt;API Key&lt;/h2&gt;
&lt;p&gt;Continue is provider-agnostic — configure the LLM you want to use:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;CONTINUE_API_KEY&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt; &lt;span class="c"&gt;# Generic key for headless use&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Or provider-specific:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# ANTHROPIC_API_KEY = &amp;#34;sk-ant-...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# OPENAI_API_KEY = &amp;#34;sk-...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Continue&amp;rsquo;s configuration is persisted in &lt;code&gt;.aibox-home/.continue/&lt;/code&gt;, mounted at &lt;code&gt;/home/aibox/.continue/&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>V1 adoption pilots</title><link>https://projectious-work.github.io/aibox/v1.x/docs/contributing/v1-adoption-pilots/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/contributing/v1-adoption-pilots/</guid><description>&lt;h1 id="v1-adoption-pilots"&gt;V1 adoption pilots&lt;/h1&gt;
&lt;p&gt;Stable-v1 readiness requires four repeatable journeys against the exact
candidate and binary:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;a new Compose workspace can compile and render a deterministic plan;&lt;/li&gt;
&lt;li&gt;a representative v0 project can preview, apply, and roll back a reviewed
v1 intent without exposing secrets or touching v1 deployment records;&lt;/li&gt;
&lt;li&gt;an existing Kubernetes target passes the complete live M7c lifecycle;&lt;/li&gt;
&lt;li&gt;exact-pinned processkit install, verify, unchanged update, recovery, and
uninstall pass through the direct opaque boundary.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After the live M7c and M5 producer evidence has been generated, run:&lt;/p&gt;</description></item><item><title>Compatibility</title><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/compatibility/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/compatibility/</guid><description>&lt;h1 id="compatibility"&gt;Compatibility&lt;/h1&gt;
&lt;h2 id="aibox--processkit-version-matrix"&gt;aibox ↔ processkit Version Matrix&lt;/h2&gt;
&lt;p&gt;Each aibox release is tested against a specific processkit version. The table
below shows the minimum compatible processkit version for each aibox release.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;aibox version&lt;/th&gt;
					&lt;th&gt;Min. processkit&lt;/th&gt;
					&lt;th&gt;Notes&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1.0.0-alpha.1&lt;/td&gt;
					&lt;td&gt;v0.28.4 stable bridge; v1.0.0-alpha.3 installer exact pin&lt;/td&gt;
					&lt;td&gt;opt-in v1 orchestration alpha with signed opaque processkit installer delegation; the v0 bridge remains until parity, rollback, interruption, migration, and secret-safety gates pass&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.14&lt;/td&gt;
					&lt;td&gt;v0.28.4&lt;/td&gt;
					&lt;td&gt;ensures &lt;code&gt;pk-reconcile&lt;/code&gt; and &lt;code&gt;pk-repo-reconcile&lt;/code&gt; install their &lt;code&gt;project-reconciliation&lt;/code&gt; and &lt;code&gt;repo-management&lt;/code&gt; skill dependencies&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.15&lt;/td&gt;
					&lt;td&gt;v0.28.4&lt;/td&gt;
					&lt;td&gt;refreshes bundled maintenance tools, locks &lt;code&gt;cargo-audit&lt;/code&gt; installation for Rust compatibility, and publishes the Hugo/Docsy documentation site&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.13&lt;/td&gt;
					&lt;td&gt;v0.28.4&lt;/td&gt;
					&lt;td&gt;adds open GitHub Discussion counts to the tmux Forge status segment and restores the complete generated Codex command projection set&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.12&lt;/td&gt;
					&lt;td&gt;v0.28.4&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.28.4 and makes companion E2E validation work from linked release worktrees&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.11&lt;/td&gt;
					&lt;td&gt;v0.28.3&lt;/td&gt;
					&lt;td&gt;adds the &lt;code&gt;cloudflare&lt;/code&gt; addon, which installs cloudflared from Cloudflare&amp;rsquo;s signed package repository rather than Debian&amp;rsquo;s archive&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.10&lt;/td&gt;
					&lt;td&gt;v0.28.3&lt;/td&gt;
					&lt;td&gt;reconciles standard processkit skills, recommends tooling-linked skills interactively, upgrades prerelease processkit surfaces, and serializes release Tier 2 E2E validation&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.6&lt;/td&gt;
					&lt;td&gt;v0.28.3&lt;/td&gt;
					&lt;td&gt;fixes Kubernetes addon checksum verification for Helm, Kustomize, and k9s archives on amd64 and arm64; and integrates processkit v0.28.3 authenticated GitHub repository reconciliation&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.5&lt;/td&gt;
					&lt;td&gt;v0.28.1&lt;/td&gt;
					&lt;td&gt;fixes Hermes Agent installation under the non-root runtime model; restores configured lazygit runtime surfaces; completes processkit reconciliation; and enforces traceable ports between maintained v0.x and v1.x lines&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.4&lt;/td&gt;
					&lt;td&gt;v0.28.1&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.28.1 and refreshes the maintained v0.x processkit compatibility baseline&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.3&lt;/td&gt;
					&lt;td&gt;v0.27.6&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.27.6; makes GitHub CLI authoritative for &lt;code&gt;github.com&lt;/code&gt; HTTPS credentials; exposes exact GitHub SSH aliases through Forge; and preserves LaTeX preview state across rebuilds&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.2&lt;/td&gt;
					&lt;td&gt;v0.27.5&lt;/td&gt;
					&lt;td&gt;integrates derived-project doctor applicability fixes, Git-ignore-aware sensitive-data scanning, 30-day archive-age enforcement, generated schema foundations, migration drafting, repository portfolio review, and refreshed gateway metadata&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.1&lt;/td&gt;
					&lt;td&gt;v0.27.4&lt;/td&gt;
					&lt;td&gt;restores Codex processkit aliases through &lt;code&gt;/prompts:pk-*&lt;/code&gt;; adds local fuzzy documentation search; moves LaTeX build and watch ownership into the development container; and adds a hardened read-only, multi-document preview sidecar with full lifecycle coverage&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.28.0&lt;/td&gt;
					&lt;td&gt;v0.27.4&lt;/td&gt;
					&lt;td&gt;adds named LaTeX build, watch, status, and EmbedPDF live-preview workflows; manages preview lifecycle through &lt;code&gt;aibox up&lt;/code&gt;/&lt;code&gt;down&lt;/code&gt;; generates project-local agent guidance; and documents persistent, least-privilege GitHub authentication with explicit per-destination tokens&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.8&lt;/td&gt;
					&lt;td&gt;v0.27.2&lt;/td&gt;
					&lt;td&gt;integrates processkit derived-project remediation: project-local &lt;code&gt;pk-commands&lt;/code&gt; preservation/schema validation, timestamped role-slot binding IDs, explicit doctor confirmation forwarding, archive remediation metadata, migration archive policy documentation, and refreshed gateway metadata&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.7&lt;/td&gt;
					&lt;td&gt;v0.27.1&lt;/td&gt;
					&lt;td&gt;fixes the TeX Live historic installer mirror, resolves pk-doctor false positives, preserves disabled harness state, and accepts context mode in schema validation&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.6&lt;/td&gt;
					&lt;td&gt;v0.27.1&lt;/td&gt;
					&lt;td&gt;refreshes tool and harness pins, updates generated runtime/docs references, and adds the GitHub CLI credential-helper integration for HTTPS Git operations&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.5&lt;/td&gt;
					&lt;td&gt;v0.27.1&lt;/td&gt;
					&lt;td&gt;refreshes the shipped docs-hugo pin to Hugo 0.162.1 and aligns release-state/docs inventory with the current addon and harness defaults from v0.27.4&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.4&lt;/td&gt;
					&lt;td&gt;v0.27.1&lt;/td&gt;
					&lt;td&gt;refreshes all shipped addon and harness tool defaults to current upstream releases; fixes Yarn 4 and Python 3.14 installation paths; moves Hermes to the current &lt;code&gt;hermes-agent&lt;/code&gt; package installer; updates Rust/docs dependencies; and quiets actionable pk-doctor false positives while making release-integrity checks bounded&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.3&lt;/td&gt;
					&lt;td&gt;v0.27.1&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.27.1 derived-project health cleanup, including quieter pk-doctor sensitive-data checks, gateway-aware preauth validation, sqlite-vec availability for pk-doctor MCP runs, supply-chain policy no-policy INFO handling, and a Codex processkit-gateway startup timeout so uv-backed gateway startup does not trip Codex&amp;rsquo;s 30-second default&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.2&lt;/td&gt;
					&lt;td&gt;v0.27.0&lt;/td&gt;
					&lt;td&gt;fixes the &lt;code&gt;docs-hugo&lt;/code&gt; addon checksum verification so Hugo archives downloaded to &lt;code&gt;/tmp/hugo.tar.gz&lt;/code&gt; are checked against the matching release checksum entry instead of the upstream asset filename&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.1&lt;/td&gt;
					&lt;td&gt;v0.27.0&lt;/td&gt;
					&lt;td&gt;refreshes addon and user-facing toolchain pins, including documentation generators, language package managers, infrastructure tooling, Kubernetes tools, Helm, and OpenCode; adds release-state coverage for addon pins plus LaTeX and apt-managed inputs; keeps Python interpreter selection tied to the Debian base image package set; fixes OpenCode release asset naming and checksum verification; updates docs-site dependencies and clears npm audit findings&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.27.0&lt;/td&gt;
					&lt;td&gt;v0.27.0&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.27.0 and the v0.26.17 supply-chain audit surface; switches the next-minor GHCR image scheme to foundation/runtime tags, stops publishing public source-hash marker tags, preserves legacy &lt;code&gt;base-debian-v0.26.x&lt;/code&gt; compatibility, adds GHCR source-tag cleanup tooling, adds release LICENSE guardrails, and fixes pasted host newlines by removing global tmux &lt;code&gt;C-j&lt;/code&gt; navigation&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.8&lt;/td&gt;
					&lt;td&gt;v0.26.16&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.16; refreshes the processkit template mirror, provenance, MCP manifest, TeamMember privacy defaults, and team consistency checks; makes latest image resolution skip GHCR tags whose multi-arch manifest children have been pruned&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.7&lt;/td&gt;
					&lt;td&gt;v0.26.15&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.15; adds provider-neutral AI execution policy axes and per-harness overrides, maps execution policy to Codex settings, preserves the processkit MCP manifest in derived installs, and refreshes documentation recordings&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.6&lt;/td&gt;
					&lt;td&gt;v0.26.14&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.14; updates processkit metadata to the new release and preserves tmux/Vim/cheatsheet and clipboard behavior consistency&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.5&lt;/td&gt;
					&lt;td&gt;v0.26.13&lt;/td&gt;
					&lt;td&gt;re-architects theme selection around theme families plus mode/variant, adds the 61-theme gallery and per-theme recordings, ships PowerKit/cheatsheet/runtime theme fixes, and preserves legacy concrete theme intent during standardization&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.4&lt;/td&gt;
					&lt;td&gt;v0.26.10&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.10; makes explicit tmux model-provider status elements render even without global provider polling; preserves Claude Code OAuth/state across container rebuilds via Claude XDG cache/config/state mounts; enables terminal extended-key passthrough for Alt-Enter; adds PowerKit GitHub issue/PR counts; and fixes &lt;code&gt;aibox-status&lt;/code&gt; AI agent counting so vendor helper processes do not inflate provider instance totals&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.3&lt;/td&gt;
					&lt;td&gt;v0.26.9&lt;/td&gt;
					&lt;td&gt;fixes GHCR latest-version resolution by requesting larger tag-list pages and following Docker Registry v2 pagination links so freshly-published images are visible to &lt;code&gt;aibox apply&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.2&lt;/td&gt;
					&lt;td&gt;v0.26.9&lt;/td&gt;
					&lt;td&gt;fixes duplicate &lt;code&gt;[customization.tmux.status]&lt;/code&gt; table parsing, routes tmux helper scripts through the managed socket, removes structurally broken capture-pane visual tests, and keeps visual layout/theme work tracked for asciinema coverage&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.1&lt;/td&gt;
					&lt;td&gt;v0.26.9&lt;/td&gt;
					&lt;td&gt;verifies GHCR release-host image pushes, fixes Yazi rich-preview API/cache behavior, suppresses recurring legitimate processkit template mirror repair warnings, emits migration affected files, and integrates processkit v0.26.9&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.26.0&lt;/td&gt;
					&lt;td&gt;v0.26.7&lt;/td&gt;
					&lt;td&gt;refreshes themes, live tmux layout/theme choosers, Yazi rich preview, Vim Alt-key handling, model-provider agent counts, statusline structure, and processkit v0.26.7 integration&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.14&lt;/td&gt;
					&lt;td&gt;v0.26.5&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.5; restores generated and image fallback Alt-word movement in Vim/readline; adds managed &lt;code&gt;.inputrc&lt;/code&gt; runtime projection; carries tmux clipboard/terminal feature improvements into generated and image fallback configs; keeps Rust cache mounts from shadowing image-provided cargo/rustc shims; and keeps the stricter processkit schema/file-layout migration path clean under pk-doctor&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.13&lt;/td&gt;
					&lt;td&gt;v0.26.2&lt;/td&gt;
					&lt;td&gt;fixes stale runtime-home propagation by making aibox-managed &lt;code&gt;.aibox-home&lt;/code&gt; files authoritative on apply and clean runtime recreation; broadens generated runtime mounts for Vim and Cargo cache directories; updates generated compose/docs coverage; and adds regression coverage for stale tmux/Yazi managed file refresh&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.12&lt;/td&gt;
					&lt;td&gt;v0.26.2&lt;/td&gt;
					&lt;td&gt;fixes fresh-project tmux/PowerKit runtime projection by using broad writable runtime-home mounts, refreshing managed theme/Yazi/Codex files on apply, scoping preauth/MCP writes to enabled harnesses, recognizing nested processkit skill catalogs in doctor, and reducing host-side doctor probes for container-owned dependencies&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.11&lt;/td&gt;
					&lt;td&gt;v0.26.2&lt;/td&gt;
					&lt;td&gt;fixes source-checkout addon discovery, PowerKit status cache writability, generated runtime writability diagnostics, disabled-harness migration schema metadata, and tmux/Yazi status glyph defaults&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.10&lt;/td&gt;
					&lt;td&gt;v0.26.2&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.2; adds configurable tmux status labels/layouts and model-provider health segments; reduces PowerKit refresh churn; stabilizes runtime MCP diagnostics; verifies release checksum sidecars; and improves image layer/cache reuse across apply/up and host release publishing&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.9&lt;/td&gt;
					&lt;td&gt;v0.26.1&lt;/td&gt;
					&lt;td&gt;integrates processkit v0.26.1; retires yazi-omp runtime support; migrates tmux status configuration to list-based slot ordering; preserves user-selected themes during standardization; suppresses Kubernetes/cloud PowerKit auth/probe flashes; and improves Yazi directory git status behavior&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.8&lt;/td&gt;
					&lt;td&gt;v0.26.0&lt;/td&gt;
					&lt;td&gt;improves the tmux log viewer, filters aibox log counts to the current container session, emits low-volume diagnostics sidecar lifecycle samples, moves PowerKit metrics into the owner-specified two-row layout, and updates generated tmux layouts around ordered harness semantics&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.7&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;introduces generated-container cleanup controls, prunes SSH companion nested runtime state around Tier 2 E2E tests, adds &lt;code&gt;aibox prune&lt;/code&gt;, and documents managed runtime cleanup policy&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.6&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;expands tmux/PowerKit theme coverage with light/dark partner handling, generated theme comments, Docusaurus theme documentation, and runtime border/status color improvements&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.5&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;refreshes managed tmux runtime files when recreating sessions so &lt;code&gt;aibox.toml&lt;/code&gt; status/layout settings take effect, preserves the delayed Yazi pane startup path, and suppresses stale default-socket tmux kill-session noise on host attach&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.4&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;repairs tmux release-host smoke probing after the managed tmux socket migration and fixes generated tmux status-right rendering by preserving the aibox runtime status segment&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.3&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;fixes Yazi &lt;code&gt;e&lt;/code&gt; editor handoff for tmux by targeting the existing Vim pane/window, documents tmux status modes and element toggles, makes skill-finder discover deselected skills from the template catalog, and tightens SSH companion guidance&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.2&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;adds tmux-native &lt;code&gt;prefix ?&lt;/code&gt; keybinding popup, upgrades the two-line PowerKit status with pane context/mode detail, labels status metrics in &lt;code&gt;aibox-status&lt;/code&gt;, fixes startup layout targeting by selecting named tmux windows instead of &lt;code&gt;$session:1&lt;/code&gt;, extends release/runtime caching behavior, and documents provider endpoint base URL hints (&lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;, &lt;code&gt;OPENAI_BASE_URL&lt;/code&gt;, &lt;code&gt;GEMINI_BASE_URL&lt;/code&gt;, &lt;code&gt;MISTRAL_BASE_URL&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.25.0&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;replaces the prior multiplexer runtime with tmux-native layouts and status, keeps the diagnostics sidecar and visual testing gates, documents TPM as a user convenience layer only, preinstalls and pins aibox-managed tmux plugins, and ships &lt;code&gt;tmux-resurrect&lt;/code&gt;/&lt;code&gt;tmux-continuum&lt;/code&gt; installed but disabled by default until persistence policy is decided&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.24.1&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;fixes generated compose so the main service starts with the image default root entrypoint user again, allowing &lt;code&gt;entrypoint.sh&lt;/code&gt; to remap/drop to &lt;code&gt;aibox&lt;/code&gt; instead of failing with &lt;code&gt;failed switching to &amp;quot;aibox&amp;quot;: operation not permitted&lt;/code&gt; during release-host runtime smoke&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.24.0&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;adds the bounded diagnostics sidecar, replaces the shell fan-out &lt;code&gt;aibox-status&lt;/code&gt; helper with Rust snapshot readers, wires sidecar-backed Zellij status rows, adds &lt;code&gt;aibox emergency &amp;lt;harness&amp;gt;&lt;/code&gt;, keeps legacy &lt;code&gt;native&lt;/code&gt;/&lt;code&gt;hidden&lt;/code&gt; status aliases while emitting &lt;code&gt;sidecar&lt;/code&gt;/&lt;code&gt;disabled&lt;/code&gt;, and reduces host release smoke to a minimal default tier with opt-in addon/full tiers&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.21&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;repairs generated Yazi git/status initialization for Yazi 26; preserves native Zellij plugin permission caches across runtime starts; adds doctor and E2E guardrails for native Zellij permission-cache projection drift; installs the Yazi &lt;code&gt;ya&lt;/code&gt; companion entrypoint in runtime images; slims visual E2E release gates with per-case progress logging and an opt-in exhaustive matrix&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.20&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;makes the release runtime smoke harness host-safe by defaulting to shell Zellij status mode, capturing raw TUI output into logs instead of streaming escape sequences to the host terminal, and asserting on structured probe markers rather than terminal transcripts&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.19&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;hardens generated runtime startup by keeping Vim eager while disabling its startup cursor-position probe; removes suspended generated AI panes; pre-seeds native Zellij plugin permissions; fixes service-specific Codex bubblewrap seccomp fallback; updates Yazi git/preview config; adds generated-runtime and opt-in visual E2E release gates&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.18&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;updates generated Yazi config and theme filetype rules for Yazi 26&amp;rsquo;s url/mime matcher schema; provides writable XDG state mounts for lazygit and similar TUIs; records follow-up runtime diagnostics and host-phase runtime smoke work&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.17&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;installs Claude Code from Anthropic&amp;rsquo;s signed apt repository with a stable &lt;code&gt;/usr/local/bin/claude&lt;/code&gt; path; makes the native aibox Zellij status/key-hint plugin the generated default; starts shell and lazygit tabs hot across layouts; refreshes Zellij, Yazi, uv, and Cargo dependencies; improves release-state reporting and harness version-pin support&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.16&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;moves Claude processkit command shims to Claude Code&amp;rsquo;s current Skills layout, cleans legacy managed &lt;code&gt;.claude/commands&lt;/code&gt; files, fixes native Zellij key-hint rendering, keeps Vim editor panes hot for Yazi edit handoff, and adds a pre-release dependency/harness state report&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.15&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;fixes a 0.23.14 &lt;code&gt;--standardize-config&lt;/code&gt; regression where a blank &lt;code&gt;[ai.harness.&amp;lt;name&amp;gt;]&lt;/code&gt; table could re-enable a commented-out harness; standard config rewrites also restore the standard processkit skill list instead of leaving every skill commented&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.14&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;canonical generated &lt;code&gt;aibox.toml&lt;/code&gt; now uses &lt;code&gt;[ai.harness.&amp;lt;name&amp;gt;]&lt;/code&gt; tables instead of the compact harness list; &lt;code&gt;aibox apply --standardize-config&lt;/code&gt; performs an opt-in schema-clean canonical rewrite; stale/deprecated generated comments were removed; Yazi &lt;code&gt;e&lt;/code&gt; again opens files in the dedicated Vim pane/tab&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.13&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;fixes 0.23.11-to-0.23.12 generated-config upgrades where a moved tool, such as &lt;code&gt;gh&lt;/code&gt;, still sits under its old addon owner; &lt;code&gt;aibox apply&lt;/code&gt; now migrates misplaced addon tool entries to their unique current catalog owner before strict validation and comment refresh&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.12&lt;/td&gt;
					&lt;td&gt;v0.25.8&lt;/td&gt;
					&lt;td&gt;processkit v0.25.8 Xiaomi MiMo model-routing content and cleanup-hint provenance, native aibox Zellij key/status bar refinements, semantic AI/audio config sections, stable Claude CLI install path, addon tool validation, and stale processkit-managed skill detection&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.11&lt;/td&gt;
					&lt;td&gt;v0.25.7&lt;/td&gt;
					&lt;td&gt;grouped &lt;code&gt;aibox.toml&lt;/code&gt; schema around aibox, container, processkit, and ai sections; catalog-style AI harness/model-provider controls; generated path settings; product skill defaults; and managed Zellij status runtime repair&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.10&lt;/td&gt;
					&lt;td&gt;v0.25.7&lt;/td&gt;
					&lt;td&gt;processkit v0.25.7 model-routing content, apply-time &lt;code&gt;aibox.toml&lt;/code&gt; structure migration, self-documenting generated config comments, addon-backed image-slimming switches, and generated-runtime release finalization&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.9&lt;/td&gt;
					&lt;td&gt;v0.25.6&lt;/td&gt;
					&lt;td&gt;restores shell-backed Zellij status rows as the default, hardens &lt;code&gt;aibox-status&lt;/code&gt; against &lt;code&gt;/proc&lt;/code&gt; races, fixes Yazi edit actions, applies addon dependency fallback handling to &lt;code&gt;aibox up&lt;/code&gt;, and integrates processkit v0.25.6 provider-neutral pk command projections&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.8&lt;/td&gt;
					&lt;td&gt;v0.25.5&lt;/td&gt;
					&lt;td&gt;native aibox Zellij status plugin now exports the literal WASM entrypoints Zellij loads, uses theme-default readable foreground text, and has no-container E2E coverage for the load/visibility regression&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.7&lt;/td&gt;
					&lt;td&gt;v0.25.5&lt;/td&gt;
					&lt;td&gt;host-generated Codex processkit-gateway MCP paths now target the devcontainer workspace mount, preserving subagent-safe absolute paths without leaking host-only paths; doctor warns about stale host-side Codex MCP script paths&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.6&lt;/td&gt;
					&lt;td&gt;v0.25.5&lt;/td&gt;
					&lt;td&gt;processkit v0.25.5 active interlocutor runtime binding, subagent MCP lifecycle guardrails, Codex MCP path fixes, addon fallback migrations, doctor schema/runtime-template diagnostics, lazygit-disabled cleanup, native Zellij status visibility, and stronger E2E coverage&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.5&lt;/td&gt;
					&lt;td&gt;v0.25.4&lt;/td&gt;
					&lt;td&gt;generated Dockerfile lazygit disablement cleanup no longer aborts when lazygit is absent as an apt package, while still removing inherited lazygit binaries&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.4&lt;/td&gt;
					&lt;td&gt;v0.25.4&lt;/td&gt;
					&lt;td&gt;processkit v0.25.4 gateway stdio-proxy daemon startup fixes, Codex pre_tool_use hook generation, Zellij status presentation control, and stale status-layout runtime sync repair&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.3&lt;/td&gt;
					&lt;td&gt;v0.25.3&lt;/td&gt;
					&lt;td&gt;processkit v0.25.3 model-spec/model-profile migrations and Codex seccomp fallback for bubblewrap&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.2&lt;/td&gt;
					&lt;td&gt;v0.25.1&lt;/td&gt;
					&lt;td&gt;processkit v0.25.1 model-recommender lifecycle metadata, task suitability classes, task-class-aware routing, and refreshed model roster&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.1&lt;/td&gt;
					&lt;td&gt;v0.25.0&lt;/td&gt;
					&lt;td&gt;stale runtime cleanup for old Compose project names, lazygit disablement fixes, and procps runtime diagnostics&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.23.0&lt;/td&gt;
					&lt;td&gt;v0.25.0&lt;/td&gt;
					&lt;td&gt;processkit v0.25.0 gateway integration, daemon-proxy mode, runtime pressure diagnostics, init reaping, optional git UI tools, and profile-aware environment metadata&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.22.0&lt;/td&gt;
					&lt;td&gt;v0.24.0&lt;/td&gt;
					&lt;td&gt;processkit v0.24.0: context archiving, richer model routing metadata, semantic task-router scoring, archive-aware index metadata&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.21.2&lt;/td&gt;
					&lt;td&gt;v0.23.1&lt;/td&gt;
					&lt;td&gt;processkit v0.23.1 release-audit cleanup and skill metadata fixes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.21.1&lt;/td&gt;
					&lt;td&gt;v0.23.0&lt;/td&gt;
					&lt;td&gt;processkit v0.23.0 model governance and release-audit integration&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.21.0&lt;/td&gt;
					&lt;td&gt;v0.22.0&lt;/td&gt;
					&lt;td&gt;multi-harness slash-command scaffolding and content-diff safety fixes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.20.0&lt;/td&gt;
					&lt;td&gt;v0.22.0&lt;/td&gt;
					&lt;td&gt;processkit install integrity, preauth merge, and no-container scaffold mode&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.19.0&lt;/td&gt;
					&lt;td&gt;v0.21.0&lt;/td&gt;
					&lt;td&gt;MCP permission configuration and processkit v0.21 content integration&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.16&lt;/td&gt;
					&lt;td&gt;v0.13.0&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;BREAKING&lt;/strong&gt;: rename &lt;code&gt;providers = [&amp;quot;codex&amp;quot;]&lt;/code&gt; → &lt;code&gt;[&amp;quot;openai&amp;quot;]&lt;/code&gt;; fix zellij &lt;code&gt;--layout&lt;/code&gt; flag; fix Rust x86_64 cross-compile target&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.15&lt;/td&gt;
					&lt;td&gt;v0.13.0&lt;/td&gt;
					&lt;td&gt;MCP config model, zjstatus hints, Zellij Ctrl+q, processkit v0.13.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.5&lt;/td&gt;
					&lt;td&gt;v0.8.0&lt;/td&gt;
					&lt;td&gt;processkit v0.8.0 GrandLily src/ restructure&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.4&lt;/td&gt;
					&lt;td&gt;v0.6.0&lt;/td&gt;
					&lt;td&gt;content migration documents (pending/in-progress/applied)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.3&lt;/td&gt;
					&lt;td&gt;v0.6.0&lt;/td&gt;
					&lt;td&gt;Claude Code slash-command adapters&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.2&lt;/td&gt;
					&lt;td&gt;v0.6.0&lt;/td&gt;
					&lt;td&gt;core skill enforcement, processkit v0.6.0 compat&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.17.0&lt;/td&gt;
					&lt;td&gt;v0.5.0&lt;/td&gt;
					&lt;td&gt;aibox.lock sectioned format&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.16.1&lt;/td&gt;
					&lt;td&gt;v0.4.0&lt;/td&gt;
					&lt;td&gt;sync auto-install added&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;0.16.0&lt;/td&gt;
					&lt;td&gt;v0.4.0&lt;/td&gt;
					&lt;td&gt;initial processkit integration&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="how-compatibility-is-enforced"&gt;How compatibility is enforced&lt;/h2&gt;
&lt;p&gt;In processkit mode, &lt;code&gt;aibox apply&lt;/code&gt; compares the &lt;code&gt;[processkit].version&lt;/code&gt; in your
&lt;code&gt;aibox.toml&lt;/code&gt; against the minimum required version for the running aibox binary.
If the pinned processkit version is older than the minimum, a warning is
emitted:&lt;/p&gt;</description></item><item><title/><link>https://projectious-work.github.io/aibox/v1.x/docs/migrations/lockfile-v0-25-6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/migrations/lockfile-v0-25-6/</guid><description>&lt;h1 id="lockfile-schema-bump-v0256--whats-automatic-what-to-verify"&gt;Lockfile schema bump v0.25.6 — what&amp;rsquo;s automatic, what to verify&lt;/h1&gt;
&lt;p&gt;aibox v0.25.6 extends &lt;code&gt;aibox.lock&lt;/code&gt; with two new optional sections. The
bump is fully automatic — &lt;code&gt;aibox apply&lt;/code&gt; backfills the new fields on first
run. No manual editing is required, and existing lockfiles remain valid
(the new fields use &lt;code&gt;#[serde(default)]&lt;/code&gt;, so they are absent from old locks
without causing parse errors).&lt;/p&gt;
&lt;h2 id="what-changed"&gt;What changed&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;cli/src/lock.rs&lt;/code&gt; adds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;AddonsLockSection::previous_selection&lt;/code&gt;&lt;/strong&gt;
(&lt;code&gt;BTreeMap&amp;lt;String, BTreeSet&amp;lt;String&amp;gt;&amp;gt;&lt;/code&gt;) — records which tool names were
enabled under each addon family at the time of the last apply. Written
under &lt;code&gt;[addons.previous_selection]&lt;/code&gt; in &lt;code&gt;aibox.lock&lt;/code&gt;. Used on the next
apply to compute a removal diff when a tool is disabled, so stale addon
binaries baked into an earlier image layer can be purged cleanly.&lt;/p&gt;</description></item><item><title/><link>https://projectious-work.github.io/aibox/v1.x/docs/migrations/zellij-eol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/migrations/zellij-eol/</guid><description>&lt;h1 id="zellij-end-of-life-migration-v0255--v0256"&gt;Zellij end-of-life migration (v0.25.5 → v0.25.6)&lt;/h1&gt;
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;aibox v0.25.6 removes Zellij entirely. tmux is now the only supported
terminal multiplexer. Any &lt;code&gt;[customization.zellij_status]&lt;/code&gt; section in your
&lt;code&gt;aibox.toml&lt;/code&gt; causes schema validation to hard-reject &lt;code&gt;aibox apply&lt;/code&gt; — you
must remove it before upgrading. Stale Zellij directories and binaries are
purged automatically on the first &lt;code&gt;aibox apply&lt;/code&gt; that runs against a
v0.25.6+ host CLI. No data from active work sessions is touched; only
Zellij runtime artifacts are removed.&lt;/p&gt;</description></item><item><title/><link>https://projectious-work.github.io/aibox/v1.x/docs/reference/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/reference/security/</guid><description>&lt;h1 id="security-reference"&gt;Security Reference&lt;/h1&gt;
&lt;p&gt;This page documents aibox&amp;rsquo;s security model and trust boundaries.&lt;/p&gt;
&lt;h2 id="support-and-vulnerability-reporting"&gt;Support and vulnerability reporting&lt;/h2&gt;
&lt;p&gt;aibox is actively maintained. The latest minor release line is supported;
security and correctness fixes are released on the newest version rather than
backported across older minor lines. See the repository
&lt;a href="https://github.com/projectious-work/aibox/blob/main/SECURITY.md"&gt;&lt;code&gt;SECURITY.md&lt;/code&gt;&lt;/a&gt;
for private reporting instructions and response expectations.&lt;/p&gt;
&lt;h2 id="dependency-and-asset-provenance-review"&gt;Dependency and asset provenance review&lt;/h2&gt;
&lt;p&gt;The project uses several independent integrity layers:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Surface&lt;/th&gt;
					&lt;th&gt;Provenance control&lt;/th&gt;
					&lt;th&gt;Release validation&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Rust CLI&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;cli/Cargo.lock&lt;/code&gt; pins the complete dependency graph&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;cargo test&lt;/code&gt;, Clippy with warnings denied, and &lt;code&gt;cargo audit&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Documentation&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;docs-site/package-lock.json&lt;/code&gt; and the Docsy submodule pin dependencies&lt;/td&gt;
					&lt;td&gt;clean &lt;code&gt;npm ci&lt;/code&gt;, production Hugo build, and npm audit&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;processkit&lt;/td&gt;
					&lt;td&gt;source, version, and release-asset SHA-256 are recorded in &lt;code&gt;aibox.lock&lt;/code&gt; and live provenance&lt;/td&gt;
					&lt;td&gt;installer hash verification, three-way content comparison, and pk-doctor integrity checks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Base images&lt;/td&gt;
					&lt;td&gt;release-specific image tags, OCI source/profile labels, and generated version markers&lt;/td&gt;
					&lt;td&gt;cross-platform build, GHCR publication verification, and downstream runtime smoke&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Addon downloads&lt;/td&gt;
					&lt;td&gt;pinned versions plus SHA-256, signed checksum, or upstream sidecar verification where available&lt;/td&gt;
					&lt;td&gt;release-state inventory and real container lifecycle tests&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Release binaries&lt;/td&gt;
					&lt;td&gt;locally cross-compiled artifacts attached to a signed release tag&lt;/td&gt;
					&lt;td&gt;version smoke tests and evidence-bound artifact checksums&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The release-state report records floating inputs and available updates before
each release. A clean security audit is mandatory; routine non-security drift
may be deferred only into a processkit WorkItem. Provenance exceptions are
documented next to the relevant installer instead of being silently accepted.&lt;/p&gt;</description></item><item><title>Color Themes</title><link>https://projectious-work.github.io/aibox/v1.x/docs/customization/themes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/customization/themes/</guid><description>&lt;h1 id="themes"&gt;Themes&lt;/h1&gt;
&lt;p&gt;aibox supports consistent color theming across all terminal tools. Set a theme in &lt;code&gt;aibox.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;customization&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;theme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;gruvbox-dark&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;mode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;auto&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or during project initialization:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aibox init --theme catppuccin-mocha
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The selected theme is applied to &lt;strong&gt;tmux&lt;/strong&gt;, &lt;strong&gt;Vim&lt;/strong&gt;, &lt;strong&gt;Yazi&lt;/strong&gt;, &lt;strong&gt;lazygit&lt;/strong&gt;, and &lt;strong&gt;Starship&lt;/strong&gt; simultaneously.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mode = &amp;quot;auto&amp;quot;&lt;/code&gt; follows the host OS light/dark appearance when a host signal is detectable during &lt;code&gt;aibox apply&lt;/code&gt;, &lt;code&gt;aibox up&lt;/code&gt;, or &lt;code&gt;aibox set theme.*&lt;/code&gt;. Containers do not receive live macOS/Windows/Linux appearance-change events, so rerun one of those commands to regenerate mounted runtime theme files after changing the host appearance. If the host appearance cannot be detected, &lt;code&gt;auto&lt;/code&gt; preserves the selected concrete theme.&lt;/p&gt;</description></item><item><title>LaTeX Build and Preview</title><link>https://projectious-work.github.io/aibox/v1.x/docs/addons/latex-workflow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/addons/latex-workflow/</guid><description>&lt;h1 id="latex-build-and-preview"&gt;LaTeX Build and Preview&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;latex&lt;/code&gt; addon supplies TeX Live, &lt;code&gt;latexmk&lt;/code&gt;, bibliography tools, fonts, and
common package groups. aibox adds a project-level build contract on top so
humans and agents use the same engine, cache, output paths, and document names.&lt;/p&gt;
&lt;h2 id="configure-documents"&gt;Configure documents&lt;/h2&gt;
&lt;p&gt;Enable the addon and declare one or more documents:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;addons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;latex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;texlive-core&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;texlive-recommended&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;texlive-fonts&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;biber&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;latex&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;engine&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;lualatex&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;cache_dir&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.latex-cache&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;latex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;documents&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;overview&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;docs/overview/overview.tex&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;output_dir&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.latex-cache/overview&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;extra_dirs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;latex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;documents&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;appendix&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;docs/appendix/appendix.tex&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;output_dir&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;.latex-cache/appendix&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-shell-escape&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;extra_dirs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;figs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;latex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;preview&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;enabled&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;engine&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;embedpdf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;bind&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;127.0.0.1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8765&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# document = &amp;#34;overview&amp;#34; # optional compatibility-route default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;allow_public&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Supported engines are &lt;code&gt;lualatex&lt;/code&gt;, &lt;code&gt;pdflatex&lt;/code&gt;, &lt;code&gt;xelatex&lt;/code&gt;, and &lt;code&gt;tectonic&lt;/code&gt;.
Continuous watch mode uses &lt;code&gt;latexmk&lt;/code&gt;, so &lt;code&gt;tectonic&lt;/code&gt; configurations support
one-shot builds only.&lt;/p&gt;</description></item><item><title>Roadmap</title><link>https://projectious-work.github.io/aibox/v1.x/docs/roadmap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/aibox/v1.x/docs/roadmap/</guid><description>&lt;h1 id="roadmap"&gt;Roadmap&lt;/h1&gt;
&lt;p&gt;This page outlines planned features and improvements for aibox. The internal
source of truth is the processkit work item index under &lt;code&gt;context/&lt;/code&gt;; this page is
the public-facing summary.&lt;/p&gt;
&lt;h2 id="current-focus"&gt;Current Focus&lt;/h2&gt;
&lt;p&gt;Current work is focused on making long-running AI workspaces cheaper and more
predictable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;explicit Compose project and image names for each aibox project&lt;/li&gt;
&lt;li&gt;optional tool bundles so idle containers do not carry unnecessary CLIs&lt;/li&gt;
&lt;li&gt;suspended non-focused tmux panes&lt;/li&gt;
&lt;li&gt;runtime resource snapshots and doctor thresholds&lt;/li&gt;
&lt;li&gt;init-reaper support for orphaned helper processes&lt;/li&gt;
&lt;li&gt;processkit MCP gateway adoption and daemon validation in real projects&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="planned--near-term"&gt;Planned — Near Term&lt;/h2&gt;
&lt;h3 id="processkit-gateway-follow-through"&gt;processkit Gateway Follow-Through&lt;/h3&gt;
&lt;p&gt;Keep validating the gateway-mode MCP defaults in downstream projects and tune
daemon guidance as more host/container runtime combinations are exercised.&lt;/p&gt;</description></item></channel></rss>