Guides.
79 guides on self-hosted AI, hardware repurposing, edge computing, and the post-OpenClaw landscape.
AI Agents
OpenClaw, Hermes, Nanobot: comparisons, audits, migrations
OpenClaw and Hermes add-on CVEs, October 2026: plugins, skills, routers
Third-party add-ons around OpenClaw and Hermes Agent picked up CVEs in October 2026: an unauthenticated prompt-injection port, a skill that deletes your home directory, a config injection that runs shell commands.
vllmvLLM CVEs, September and October 2026: media inputs and P/D serving
vLLM's autumn 2026 CVEs: audio and video inputs that crash or overflow the server, a trust_remote_code bypass, and disaggregated-serving DoS bugs. Run 0.30.0 or later.
open-webuiOpen WebUI 0.11.4 fixes 19 CVEs: token theft, terminals, XSS
NVD published 19 Open WebUI CVEs on 12 October 2026, all fixed in 0.11.4: session token theft from any website, terminal privilege escalation and stored XSS.
ollamaOllama /api/pull CVEs, October 2026: path traversal to root RCE
CVE-2026-103663 lets an unauthenticated caller of Ollama's /api/pull write files outside the model store and get code run as root. Upgrade to 0.35.0 and close port 11434.
langflowLangflow, n8n, LiteLLM: the AI builders on CISA KEV in 2026
CISA added nine Langflow, n8n and LiteLLM CVEs to its exploited list in 2026. The versions to run, the three bug patterns, and what to lock down.
ollamaOllama heap leak (CVE-2026-5757) and inference-server memory safety
Ollama CVE-2026-5757 leaks heap memory to unauthenticated callers; Triton's DALI backend (CVE-2026-24213/24214/24264) has integer-overflow and OOB bugs.
mlflowMLflow authorization CVEs 2026: artifacts, traces, gateway leaks
MLflow shipped three authorization and secrets CVEs in 2026: CVE-2026-2651 (critical), CVE-2026-8147, and CVE-2026-4035. What each one breaks and how to patch.
cveVector database authorization CVEs: ChromaDB, Weaviate 2026
ChromaDB (CVE-2026-45830 to -45833) and Weaviate (CVE-2026-59093) shipped multi-tenant authorization-bypass CVEs in 2026. The shared pattern, and the fix.
vllmvLLM security CVEs 2026: auth bypass and trust_remote_code RCE
vLLM shipped CVE-2026-48746 (auth bypass, CVSS 9.1) plus trust_remote_code RCEs CVE-2026-4944 and CVE-2026-5817. Upgrade to 0.22.1+ now and lock these settings.
state-ofSelf-hosted AI news & trends: Q2 2026 state of the ecosystem
PocketClaw's Q2 2026 look at self-hosted AI: where the serious CVEs landed, with a link to NVD for each, and our editorial view on agents, hardware, providers, models and infrastructure. The star counts, reader survey and market shares of the first version have been removed: they had no source.
gpuGPU vs CPU for self-hosted AI inference: when each wins in 2026
When does a GPU pay for itself in self-hosted AI inference, and when is a modern CPU the better answer? A reasoned comparison of four kinds of host (Raspberry Pi 5, Intel NUC 13, Mac Mini M4, a single-GPU box): what each can run, what it costs to keep on, and where the CPU wins. Orders of magnitude, not a measured benchmark.
gdprGDPR for self-hosted AI agents, step by step
Running an AI agent on your own server under GDPR: lawful basis, where data lives, LLM providers as sub-processors, DPIA triggers, the 72-hour breach notice.
self-hosted-aiBest self-hosted AI agents 2026: OpenClaw, Hermes, Nanobot compared (decision tree)
Pick the right self-hosted AI agent in 2026 with a six-question decision tree. Covers OpenClaw, Hermes Agent, Nanobot, NanoClaw, IronClaw, ZeroClaw, Moltworker. Practical, vendor-agnostic, no-bullshit.
securitySelf-hosted AI security best practices: a playbook
Securing an AI agent you host yourself: threat model, sandbox tiers, where credentials belong, Tailscale or SSH instead of a public port, logging, incident response.
local-llmLocal LLM benchmarks on a Pi 5, mini PC, Mac or GPU
Published llama.cpp speeds for one 7B model on mini PCs, Apple Silicon Macs and Nvidia cards, Raspberry Pi 5 figures, and the memory each model size needs.
edge-aiBest hardware for local LLMs and AI agents in 2026
Raspberry Pi 5, mini PC, Mac mini or Mac Studio for a local LLM or a self-hosted AI agent: what each budget buys, with makers' specs and published speeds.
pocket-aiPocket AI: which self-hosted agents run on small hardware
Which self-hosted AI agents run on a Raspberry Pi, mini PC, Mac mini, Framework laptop or old phone: an agent-by-device matrix, the limits, six setups.
self-hosted-aiSelf-hosted AI agents in 2026: the complete landscape report
Comprehensive landscape report on self-hosted AI agents in 2026: ecosystem map, vendor analysis, security posture, hosting economics, model integrations and the regulatory environment. Covers OpenClaw, Hermes, Nanobot, NanoClaw, IronClaw, ZeroClaw, Moltworker and the wider category.
openclawThe OpenClaw timeline: from Clawdbot to a foundation (late 2025 to July 2026)
OpenClaw's history from sources: Clawdbot in late 2025, two renames in January 2026, CVE-2026-25253, 135,000 instances exposed, its creator's move to OpenAI and the OpenClaw Foundation of July 2026.
openclawHow to migrate from OpenClaw to Hermes Agent: step-by-step
Migrate from OpenClaw to Hermes Agent with hermes claw migrate: preview, import, what gets archived, where commands run, re-pairing, retiring OpenClaw.
openclaw5 best OpenClaw alternatives in 2026, compared
Hermes Agent, Nanobot, NanoClaw, IronClaw and ZeroClaw compared on setup, security model, model support and cost: which OpenClaw alternative fits your threat model.
openclawOpenClaw security crisis 2026: what you need to know
CVE-2026-25253 let one crafted link take over an OpenClaw gateway, and The Register counted more than 135,000 instances reachable from the internet. What happened, what was exposed, and what to do.
Infrastructure
proot, Ubuntu rootfs, dpkg fixes, DNS, git wrappers
run-proot.sh Helper Script
A helper script that encapsulates the full proot invocation with all bind mounts, environment variables, kill-on-exit, and link2symlink flags needed to run Ubuntu on the Moto E2.
npmnpm Cache on SD Card
Move npm cache to SD card to free internal storage on Moto E2 with only 700 MB available space.
npm--ignore-scripts (Skip Native Compilation)
Skip native module compilation during npm install on resource-constrained ARM32 device using --ignore-scripts flag.
gitGit Argument Parser
An enhanced git wrapper with full argument parsing that extracts URLs and destinations regardless of order, handling the many different invocation patterns npm uses during package installation.
gitGit Wrapper Bridge
Bridge git from Termux into proot Ubuntu using a wrapper script that calls the native binary through bind mounts.
prootExtract an Ubuntu rootfs into Termux proot by hand
When proot-distro install fails on an old Termux: download the Ubuntu 25.10 armhf rootfs tarball and extract it into the proot directory yourself.
prootproot-distro: manual install on an old Termux
When apt has no proot-distro for Android 5 or 6: fetch the .deb from GitHub, patch its TERMUX_PREFIX placeholders with sed, install it with dpkg.
Runtime
Node.js cross-compile, NDK, LD_PRELOAD, libc++, native execution
fs.promises Patching
Extending the hijack.js path-rewriting shim to also intercept fs.promises methods, which are a separate API surface from the synchronous and callback-based fs methods already patched.
nodejsNative node22-icu (proot eliminated)
Cross-compile Node.js 22 with NDK r26c and small-icu for ARM32 Android, eliminating proot with an 8.4 KB LD_PRELOAD shim.
gitGit Wrapper sed Rewrite
Using sed in the git wrapper to rewrite all three SSH URL formats (git+ssh://, ssh://, git@) to HTTPS in a single pass, since proot has no SSH agent for GitHub authentication.
systemdBypass systemd (gateway run)
Run OpenClaw gateway in foreground mode to bypass systemd dependency in Termux/proot environment.
hijackhijack.js (Bionic Bypass + GC + Lazy Loading)
Monkey-patch Node.js internals via -r flag to fix Android 6 bionic crashes, add GC, lazy loading, and dashboard endpoints.
nodejsNode.js 22 in proot
Installing a pre-compiled Node.js 22.12.0 ARM binary directly inside the proot Ubuntu rootfs, bypassing broken dpkg/apt and the outdated Termux-native Node v12.
RAM
V8 heap tuning, lazy loading, semi-space, dead module stubs
UV_THREADPOOL_SIZE=1
Reduce libuv thread pool from 4 to 1 on single-core ARM32, saving 2 MB RAM with zero performance impact.
v8V8 Semi-Space 2 -> 1 MB
Shrink V8 young generation semi-space from default to 1 MB, saving RAM on I/O-bound gateway with minimal GC overhead.
v8V8 Heap 192 MB Minimum
Establish 192 MB as the minimum V8 heap for OpenClaw startup, surviving the ESM module linking spike.
dead-codeDead Packages (_DEAD_PKGS instant stubs)
Splitting intercepted packages into dead (instant empty stub, zero RAM) and lazy (proxy-deferred, loaded on demand), with 23 packages stubbed out completely to save memory and I/O on a 1 GB phone.
lazy-loadingLazy Loading v3 (Proxy-based deferred require)
Defer 40 MB of module loading at startup using ES6 Proxy-based lazy require with 37 intercepted package prefixes.
compile-cacheCompile Cache Cleanup
Periodic cleanup of Node 22's V8 compile cache directory, which accumulates 51 MB of stale .cache files that waste disk space on a storage-constrained phone.
v8V8 Heap Binary Search
Systematically binary-search the minimum V8 heap cap that survives OpenClaw startup on 1 GB RAM.
esmESM Dead Module Stubs
Replace unused ESM channel SDKs with stub packages exporting empty classes, saving ~80 MB RAM and 262 MB disk.
v8Low-Memory Mode (--max-old-space-size)
Configure V8 heap limit to prevent OOM kills on 1 GB Android device, starting at 384 MB and refined down to 112 MB.
Debloat
Package removal, SystemUI, telephony, rootfs diet
setsid Gateway Detach
Detach PocketClaw gateway from Termux process tree using setsid to survive Dalvik VM kills and cgroup cascades.
esmESM Stubs at HOST Path
Fix invisible ESM stubs by placing them at the Termux host path instead of inside the proot rootfs, where bind mounts shadow them.
npmnpm Cache on ext4
Migrate npm cache from FAT32 SD card to ext4 rootfs partition, eliminating ENAMETOOLONG errors on deep git dependency paths.
headlessTier 1.5: Headless Server Mode
Disable Android's SystemUI, Phone, Media, and Keychain services via Dirty COW root to reclaim 67 MB on a headless server phone.
prootDeep Rootfs Diet (550 -> 498 MB)
Second-pass rootfs cleanup removing gconv charset modules, perl, systemd, and PAM from proot Ubuntu, cutting rootfs from 550 to 498 MB.
prootProot Rootfs Diet (741 -> 550 MB)
Trim the proot Ubuntu rootfs from 741 MB to 550 MB by removing unused dev headers, Python, and locale data.
debloatExtended Boot Debloat (+3 Packages)
Second debloat pass adding Chrome, defcontainer, and qcrilmsgtunnel to the disabled list, saving additional 100 MB RAM.
androidboot-debloat.sh (51+ Packages via Dirty COW)
Automated debloat script using Dirty COW root to disable 51+ Android packages on Moto E2 in a single command.
gmsStatic IP + GMS Kill
Configure static IP to decouple WiFi from Google Play Services, enabling safe GMS kill to reclaim 270 MB.
gmsDon't Kill GMS (WiFi Routing Dependency)
Critical lesson: killing Google Mobile Services on Android 6 removes the default WiFi route, breaking all internet connectivity.
androidAndroid Debloat (No Root)
Remove 31 stock Android packages without root using pm uninstall, freeing ~100 MB RAM on Moto E2. Permanent on Android 6.
Dirty COW
Kernel exploit chain, SELinux bypass, boot loop recovery
--legacy-peer-deps
Use --legacy-peer-deps to bypass npm's strict peer dependency resolution during OpenClaw installation on constrained ARM32 device.
securityAPI Keys Out of ps Output
Move API keys from command-line arguments to a chmod 600 env file, hiding them from ps output.
dirty-cowDirty COW SELinux Bypass (zygote context)
Two-phase Dirty COW exploit bypassing SELinux by running code as zygote process to write kernel parameters and kill daemons.
boot-loopRecovery After Boot Loop
Documentation of 8 failed recovery attempts after disabling a critical Motorola package caused a permanent boot loop.
dirty-cowDirty COW Root (CVE-2016-5195)
Exploit CVE-2016-5195 Dirty COW race condition on kernel 3.10.49 to gain temporary root on locked-bootloader Moto E2.
Launcher
Canvas APK, CRT renderer, escape hatches, native dashboard
Process Name Cleanup in Dashboard
Clean up Android package names in PocketClaw dashboard display using regex chain for readability on small screens.
dashboardDashboard v6: Green Cyberpunk + RAM Breakdown
Redesigned dashboard with green CRT theme and per-process RAM breakdown that revealed WebView as the #1 memory consumer.
apkAPK v2: Escape Hatches (Post-Brick Fix)
Five escape hatch protections added to PocketClaw launcher after near-brick experience with fullscreen WebView blocking ADB auth.
apkNative APK: Kill the WebView (216 -> 45 MB)
Replace WebView launcher with native Android Activity using ScrollView and TextView, cutting RSS from 216 MB to 55 MB.
apkPocketClaw Launcher APK (8.5 KB)
Build a minimal 8.5 KB Android launcher APK without Android Studio using javac, d8, aapt, and apksigner.
Network
WiFi watchdog, SSH config, npm cache, provider setup
SSH Config + Static IP
SSH config alias with static IP and port forwarding for one-command access to Moto E2 Termux over USB and WiFi.
wifiWiFi Watchdog
Automated WiFi recovery watchdog using busybox cron to detect silent disconnections and toggle WiFi back on via svc commands from Termux.
kimiKimi Coding Provider + User-Agent Spoof
Configure Kimi Coding API provider for OpenClaw with correct endpoint, User-Agent spoof, and reasoning mode disabled.
dnsIPv6 DNS + autoSelectFamily
Fix intermittent DNS resolution failures in proot by pinning Google IPv6 DNS servers and enabling Node.js autoSelectFamily for dual-stack connection attempts.
Gateway
hijack.js, dashboard, API endpoints, key management, setup wizard
Setup Wizard (/setup)
Web-based setup wizard for PocketClaw: choose messaging channel, AI provider, enter credentials, and deploy in 4 steps.
api-keysAPI Key Management (Dashboard KEYS Page)
Web-based API key management with masked display, inline editing, one-tap provider testing, and live process.env updates.
dashboard3-Page Dashboard (STATUS / KEYS / LOGS)
Three-page dashboard with STATUS, KEYS, and LOGS tabs served from hijack.js alongside the OpenClaw gateway.
dashboardDashboard via hijack.js (HTTP Intercept)
Inject custom dashboard and status API endpoints into OpenClaw's HTTP server via hijack.js monkey-patching.
Boot
Termux boot, healthcheck, crontab, daemon stopper, wake lock
termux-wake-lock: stop Android Doze pausing Termux
termux-wake-lock holds a partial wake lock and dumpsys deviceidle whitelist exempts Termux from Doze: the two commands that keep a phone server answering.
healthcheckHealthcheck (2-Phase Gateway Check)
Two-phase gateway healthcheck via cron: process existence check plus HTTP response verification with retry before restart.
bootBoot Script with WiFi Retry
Replace fixed sleep delay with WiFi retry loop in Termux boot script for reliable gateway startup after reboot.
termuxTermux:Boot: auto-start scripts when Android boots
Make Termux start sshd, crond and your own scripts after every reboot: install Termux:Boot from F-Droid, open it once, put scripts in ~/.termux/boot/.
Desktop
Merged kill loop, V8 semi-space tuning, final optimizations
kill-dalvik Cron (Auto-Free ~40 MB)
Cron job to periodically kill com.termux.boot Dalvik VM, freeing 40 MB while avoiding the cgroup cascade from killing com.termux.
optimizationMerged Kill Loop (3 bash -> 1 bash)
Merge three separate background bash kill loops into a single loop, saving 3 MB RAM and reducing process count.