<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Ubuntu on WebDevStation</title>
    <link>https://webdevstation.com/tags/ubuntu/</link>
    <description>1 article tagged Ubuntu — tutorials, code examples and notes from building real systems, newest first.</description>
    <generator>Hugo</generator>
    <language>en</language>
    <managingEditor>Alex</managingEditor>
    <webMaster>Alex</webMaster>
    <copyright>© 2026 WebDevStation</copyright>
    <lastBuildDate>Sun, 08 Nov 2026 21:08:14 +0100</lastBuildDate>
    <atom:link href="https://webdevstation.com/tags/ubuntu/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Install kwant on Linux: Ubuntu, Debian and AppImage</title>
      <link>https://webdevstation.com/posts/install-kwant-linux-deb-appimage/</link>
      <pubDate>Sun, 08 Nov 2026 21:08:14 +0100</pubDate>
      <author>Alex</author>
      <guid isPermaLink="true">https://webdevstation.com/posts/install-kwant-linux-deb-appimage/</guid>
      <description>Install kwant&#39;s self-hosted AI agent team on Ubuntu or Debian with a .deb, or use the Linux AppImage. Includes setup, local models, updates and data.</description>
      <content:encoded><![CDATA[<p>Want to install self-hosted AI agents on Linux without building a frontend or wiring up a runtime? <a href="https://kwant.si">kwant</a> ships a desktop app: a <code>.deb</code> for Ubuntu and Debian, and an AppImage for other compatible Linux desktops. Download one file, open the app, connect an AI account, and start with a team rather than another empty chat tab.</p>
<p>This is the Linux companion to <a href="/posts/self-hosted-ai-agent-team-one-binary/">Self-Host a Team of AI Agents in One Binary</a>. That article explains roles, shared chats and handoffs. Here the goal is narrower: get kwant running, know where its data lives, and understand what an update or uninstall changes.</p>
<p><strong>Disclosure:</strong> I build kwant. It is open source under AGPL-3.0, written in Rust, with the web UI embedded in the runtime. If you are looking for a self-hosted alternative in the same category as Grok Bot, Claude Duet or OpenAI dots, this is one you can run on your own hardware.</p>
<p><strong>Version checked:</strong> 0.7.6, released November 8, 2026. The <a href="https://github.com/alexsergivan/kwant/releases/tag/mac-v0.7.6">release assets and notes</a>, <a href="https://github.com/alexsergivan/kwant#on-linux-the-app-beta">README</a> and <a href="https://kwant.si/docs/install">installation docs</a> are the sources for this guide. Linux desktop support is still <strong>beta</strong>; this is not a claim that every desktop environment has been tested.</p>
<h2 id="choose-the-right-linux-package">Choose the right Linux package</h2>
<table>
	<thead>
			<tr>
					<th>Your machine</th>
					<th>Download</th>
					<th>What to expect</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Ubuntu 22.04 or newer, Debian 12 or newer; x86_64 desktop</td>
					<td><code>kwant_amd64.deb</code></td>
					<td>Install with apt; it resolves package dependencies</td>
			</tr>
			<tr>
					<td>Another compatible x86_64 Linux desktop</td>
					<td><code>kwant_x86_64.AppImage</code></td>
					<td>Make it executable and run it; needs a normal GTK desktop and FUSE</td>
			</tr>
			<tr>
					<td>ARM Linux or a headless server</td>
					<td>Not either desktop package</td>
					<td>Use the server installation path instead; see the ARM note below</td>
			</tr>
	</tbody>
</table>
<p>Check the processor architecture if you are unsure:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>uname -m
</span></span></code></pre></div><p><code>x86_64</code> is the architecture called <code>amd64</code> in the Debian package name. It includes compatible Intel and AMD processors. <code>aarch64</code> is ARM64: the x86_64 desktop packages are not the right download for it.</p>
<p>The project reports container testing on Ubuntu 22.04, Ubuntu 24.04 and Debian 12, not broad real-desktop validation. AppImage does <strong>not</strong> mean “works on any Linux”: the GTK, FUSE and system-library requirements still matter. Tray icons, Wayland and HiDPI behavior can vary.</p>
<p>You do not need a Rust toolchain or a frontend build for these desktop downloads. You do need an AI account or compatible model endpoint before bots can answer. Docker is optional for VM mode and the bots&rsquo; shared browser, not a prerequisite for opening the app.</p>
<h2 id="option-1-install-kwant-on-ubuntu-or-debian-with-the-deb">Option 1: install kwant on Ubuntu or Debian with the .deb</h2>
<p>Download <a href="https://github.com/alexsergivan/kwant/releases/latest/download/kwant_amd64.deb"><code>kwant_amd64.deb</code> from the latest release</a>. In a terminal, change to the folder where you saved it. For example, if that is your normal Downloads folder:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd ~/Downloads
</span></span><span style="display:flex;"><span>sudo apt install ./kwant_amd64.deb
</span></span></code></pre></div><p>The <code>./</code> tells apt to install the local file. apt installs the dependencies along with it; you do not need to copy the source-build dependency list from the repository.</p>
<p>Once installation finishes, launch <strong>kwant</strong> from your desktop&rsquo;s application menu. The app runs the kwant server for you and opens its interface in a window. You do not need to start a second <code>kwnt serve</code> process.</p>
<p>If apt says it cannot find the file, check the folder and the filename you actually downloaded. Browsers sometimes add a suffix when the same file is downloaded twice. If dependency resolution fails, keep the exact error and check your distribution version before trying unrelated packages from another release.</p>
<h3 id="optional-check-the-downloads-sha-256">Optional: check the download&rsquo;s SHA-256</h3>
<p>For a reproducible download, use the <a href="https://github.com/alexsergivan/kwant/releases/tag/mac-v0.7.6">0.7.6 release page</a> rather than the moving “latest” link. It lists checksums and supplies <code>.sha256</code> files alongside the packages.</p>
<p>For the <strong>0.7.6</strong> <code>.deb</code> only:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sha256sum kwant_amd64.deb
</span></span></code></pre></div><p>Expected hash:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>7141fb74cbb5a48dc133fc222a4c3dcc39409c637dac8c5f14fa0459d0779ed7
</span></span></code></pre></div><p>A newer release has a different hash. Compare against the notes for the version you downloaded, not an old value copied from this post. A matching checksum checks the file against the published value; it is not a substitute for downloading from the project&rsquo;s real release page.</p>
<h2 id="option-2-run-the-kwant-appimage">Option 2: run the kwant AppImage</h2>
<p>Download <a href="https://github.com/alexsergivan/kwant/releases/latest/download/kwant_x86_64.AppImage"><code>kwant_x86_64.AppImage</code></a>. In its download folder:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chmod +x kwant_x86_64.AppImage
</span></span><span style="display:flex;"><span>./kwant_x86_64.AppImage
</span></span></code></pre></div><p>Keep the file somewhere you intend to leave it, rather than treating it as an installer you can throw away after launch. Choose a user-writable location so the app can replace its file when you choose an update.</p>
<p>The documented prerequisites are a <strong>normal GTK desktop and FUSE</strong>. If launch fails with a FUSE error, follow your distribution&rsquo;s AppImage/FUSE instructions. Package names differ across distributions and releases, so there is no universal apt command to paste here. Do not remove desktop libraries or disable security controls just to force the app to start.</p>
<p>For the <strong>0.7.6</strong> AppImage, <code>sha256sum kwant_x86_64.AppImage</code> should print:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>8c0b2d394108b415edc1f832b3be8c4b429c46bc8772e7c059909eb14bb9a419
</span></span></code></pre></div><p>As with the <code>.deb</code>, use the matching release page if you download another version.</p>
<h2 id="first-open-connect-an-account-then-ask-one-question">First open: connect an account, then ask one question</h2>
<p>The desktop app starts its own local server and keeps an icon in the Linux tray. Closing its window hides it; use <strong>Quit</strong> in the tray menu when you want to stop the app rather than just put the window away.</p>
<p>The default local address is <a href="http://127.0.0.1:8799">http://127.0.0.1:8799</a>. Normally the desktop window is all you need. If you use a browser instead, that address opens the local UI while kwant is running, unless you changed the port or the app had to use another free port. Local loopback access needs no separate kwant sign-up; access from another machine has different authentication rules.</p>
<p>In <strong>0.7.6</strong>, a new user&rsquo;s <code>#general</code> opens with the <strong>Get started</strong> card: choose your AI, sign in, and pick a team. You can use Claude, Codex or Grok accounts, or an API key. The card handles installing a missing supported AI CLI and guides sign-in. Older versions used an add-account banner instead, so update if your first screen differs from the current <a href="https://kwant.si/docs/quickstart">quickstart</a>.</p>
<p>You can also manage API keys under <strong>Settings → This space → Accounts</strong>. For a local model, add your own OpenAI- or Anthropic-compatible server there. Running kwant locally does not automatically make an external provider local: messages still go to whichever model endpoint and services you configure.</p>
<p>The first start can take a few minutes because kwant installs its Laya model router and downloads a model of about 420 MB in the background. Bots can answer while that runs; the routing rules still choose who answers. A local model server is a separate choice, not what that router download provides.</p>
<p>For a small first test, keep the starter bots and ask:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>@Architect outline a small Go HTTP service for a read-only status page.
</span></span><span style="display:flex;"><span>Then @DevOps review the plan for deployment risks. Don&#39;t change any files.
</span></span></code></pre></div><p>The starter team includes Architect, TechLead and DevOps. Watch the reply and the handoff in the same channel. This is the layer above <a href="/posts/tool-use-in-go-agent-loop/">the tool-use loop</a>: named roles, shared history and someone to own the next step.</p>
<h2 id="setup-checks-without-guessing-a-cli-path">Setup checks without guessing a CLI path</h2>
<p>Open <strong>Setup</strong> in the app to see the dependency checklist. This is the simplest route for a desktop install.</p>
<p>The repository also documents <code>kwnt doctor</code> for checking a command-line installation and <code>kwnt setup</code> for installing missing pieces. Do not assume the desktop package puts a separate <code>kwnt</code> command on your shell&rsquo;s PATH. Use the app&rsquo;s Setup screen unless you have explicitly installed or built the CLI.</p>
<p>Browser tasks and VM mode have more prerequisites than a first chat. Get one account and one text handoff working before adding those capabilities. See the <a href="https://kwant.si/docs/install#without-docker-kwnt-setup">install and setup reference</a> when you are ready.</p>
<h2 id="spaces-local-data-and-approvals">Spaces, local data and approvals</h2>
<p>Before connecting both company and personal accounts, create separate <strong>spaces</strong>. Each has its own bots, teams, channels, routines, accounts and approval rules. A work space can use company accounts, while a home space uses personal keys or a local model endpoint.</p>
<p>By default, kwant&rsquo;s data lives in:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>~/.kwnt
</span></span></code></pre></div><p>The desktop app and the CLI use that same default directory. An explicit <code>KWNT_DATA_DIR</code> configuration changes it. Treat this folder as sensitive application data: it contains more than disposable cache files. Keep backups private, and stop kwant before making a simple file-copy backup of its database and associated files.</p>
<p>Self-hosting means you control the runtime and storage, not that a bot&rsquo;s actions are harmless. Keep the default risky-action approvals while you learn what the team can do. Payments always ask in every approval mode. Add routines only after the same task works manually, and remember that a laptop cannot keep doing work while powered off.</p>
<p>If you want the implementation side rather than a packaged runtime, <a href="/posts/calling-claude-from-go/">Calling Claude from Go</a> and <a href="/posts/tool-use-in-go-agent-loop/">Tool Use in Go</a> cover the building blocks.</p>
<h2 id="updates-and-uninstalling">Updates and uninstalling</h2>
<p>Both Linux packages offer updates <strong>inside the app</strong> and check an update&rsquo;s signature before installing it. The <code>.deb</code> update asks for your system password. This is a self-updating AI agent app, not a promise that it has added an apt repository to your machine.</p>
<p>Your data folder is separate from the application package. Updating the app keeps that data. Before a significant upgrade, a private backup is still sensible.</p>
<p>To remove the Debian package:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt remove kwant
</span></span></code></pre></div><p>That removes the application but <strong>leaves <code>~/.kwnt</code> in place</strong>. Do not delete the data folder as a troubleshooting step unless you deliberately want to discard it. For an AppImage, quit the app before removing its executable file; that file is separate from your data too.</p>
<h2 id="what-about-arm64-or-a-headless-linux-server">What about ARM64 or a headless Linux server?</h2>
<p>There is <strong>no ARM Linux desktop app</strong> in the checked release. The <code>.deb</code> and AppImage above are x86_64 only.</p>
<p>There <strong>is</strong> now a separate server path: release 0.7.6 includes <code>kwnt-linux-aarch64.tar.gz</code> and <code>kwnt-linux-x86_64.tar.gz</code>, with an installer for Ubuntu 22.04+ or Debian 12+ and glibc 2.35 or newer. This is the headless runtime with a browser UI, not an ARM AppImage. Follow the <a href="https://kwant.si/docs/install#one-line">server installation guide</a> for the current commands and authentication details.</p>
<p>That distinction matters on a Raspberry Pi or ARM VPS: “ARM server binary exists” does not mean “the desktop package runs on ARM.” For an always-on team, use the server path instead of leaving a desktop window open and hoping it survives a reboot.</p>
<h2 id="linux-install-checklist">Linux install checklist</h2>
<ul>
<li><input disabled="" type="checkbox"> Confirm x86_64 for the desktop app.</li>
<li><input disabled="" type="checkbox"> Choose the <code>.deb</code> on supported Ubuntu/Debian, or the AppImage on a compatible GTK/FUSE desktop.</li>
<li><input disabled="" type="checkbox"> Open kwant and connect one account or local model endpoint.</li>
<li><input disabled="" type="checkbox"> Try one low-risk question and an <code>@mention</code> handoff.</li>
<li><input disabled="" type="checkbox"> Create separate spaces before mixing work and personal accounts.</li>
<li><input disabled="" type="checkbox"> Find Setup, approvals and the tray&rsquo;s Quit action.</li>
<li><input disabled="" type="checkbox"> Keep <code>~/.kwnt</code> private and back it up before important changes.</li>
</ul>
<p><strong>Next step:</strong> <a href="https://github.com/alexsergivan/kwant/releases/latest">download the latest release</a>, try a team on your Linux desktop, and <a href="https://github.com/alexsergivan/kwant">star kwant on GitHub</a> if this is the shape of self-hosted AI agents you were looking for. The <a href="/posts/self-hosted-ai-agent-team-one-binary/">one-binary overview</a> goes deeper into handoffs, routines and approvals once the install is out of the way.</p>]]></content:encoded>
      <category>AI Engineering</category>
      <category>DevOps</category>
    </item>
  </channel>
</rss>
