kilian-ai build lab // ai agent & indie hacker

The Portfolio, experience it live and in color.

This page highlights three live projects: an AI agent-powered browser arcade builder at slob.games, an in-browser Linux machine at linuxontab.com, and an agentic LLM shell REPL at getclaw.site.

Project Showcase

Screenshots and project summaries for all three projects.

Screenshot preview of slob.games homepage

slob.games

Lightweight browser arcade space. Current homepage presents a Snake game experience with keyboard/tap controls and score tracking.

  • Immediate play loop with simple controls.
  • Arcade vibe suitable for quick web demos.
  • Good fit for minimalist game experiments.
Screenshot preview of linuxontab.com homepage

linuxontab.com

Real Linux in a browser tab. The site positions itself as zero-install, local-first, and useful for fast disposable shells, teaching, demos, and lightweight dev tasks.

  • Boots a real x86 Linux kernel + Alpine userland in-browser via v86 + WebAssembly.
  • Persistent snapshots stored client-side in IndexedDB.
  • Opt-in networking with tunnel flow for host SSH into the tab VM.
  • Designed to work offline after assets are cached.
Screenshot preview of getclaw.site homepage

getclaw.site

A shell-native LLM agent that runs on any Linux box. A single POSIX shell script that gives you an autonomous agent loop against OpenAI or Anthropic — with shell tool calls, rolling memory, and mentor mode.

  • Pure POSIX sh + curl + jq — runs on busybox ash, Alpine, and cheap VPS boxes.
  • Agentic shell tool calls: model emits <shell> blocks, claw runs them and feeds results back.
  • Rolling memory: prompts/replies journaled to JSONL; LLM compacts overflow into session rules.
  • Mentor mode: a second agent pass critiques and revises the first answer.
  • Multi-provider: switch between OpenAI and Anthropic with a single flag.

LinuxOnTab Research Snapshot

Homepage messaging emphasizes: real kernel, no install, no account requirement, browser-local execution, optional TCP egress/tunnels, and practical use cases like disposable sandboxes, demos, and teaching Linux by URL.

Research source: linuxontab.com homepage sections including What is LinuxOnTab, Features, Use cases, vs Docker, Technology, and Quickstart. Screenshots were captured and stored in local project assets.

traits.build / Stable Traits — Research Notes

Architecture and product research for the traits.build polyglot function platform and its Stable Traits release layer.

What is traits.build?
A polyglot function platform — write a function in any language (JS, Python, Rust, Java, Perl, TypeScript), expose it at a dot-notation address, and call it from any other language or HTTP client. The core value proposition: "Universal Composable Functions — compose JS, Python, Rust into one seamless API."

Runtime architecture
A Rust binary (straits) acts as the polyglot router. It loads function definitions from .trait.toml files, starts language-specific worker subprocesses on demand (Node.js, Python, Java, Perl — Rust runs in-process), and dispatches calls over newline-delimited JSON on stdin/stdout. Each request carries a UUID for concurrent request/response multiplexing. The HTTP layer is Actix-web; the trait registry is a thread-safe DashMap.

Three-layer kernel model
Kernel — fixed infrastructure: registry, dependency resolution, trait loader, interface resolution.
Namespaces — capability domains (sys, net, gui, kernel, …), each defined by a namespace.toml manifest.
Traits — concrete implementations. A trait path can act as an interface (sys.rename) with multiple prioritised implementations (sys.rename.posix at priority 100, sys.rename.safe at 50).

Stable Traits — release & verification layer
Immutable, backward-compatible trait releases with blockchain-anchored integrity. Once a trait is published its signature, tests, and interface contracts are locked — future releases must be backward-compatible. Every release is SHA-256 checksummed and appended to a local hash-chain registry, optionally anchored to the Base (EVM) blockchain. All 14 sys.* traits are compiled as native Rust modules into the binary — no subprocess overhead for system calls.

Stable Traits system map

Layer Trait Purpose
Checksumsys.checksumDeterministic SHA-256 over canonicalised JSON
Releasesys.releaseSnapshot, verify, test, fix — creates .releases.json artefacts
Registrysys.registry_chainAppend-only local hash-chain with genesis block and verification
Blockchainsys.chain_anchor_*9 traits for Base network anchoring (prepare, submit, sign, verify, …)
Gated callssys.straits_callEvery call gated by chain + compat verification before execution
Versioningsys.straits_versionAuto YYMMDD versioning with intraday suffix (YYMMDD.HHMMSS)

Key CLI commands

traits call sys.release snapshot gui.straits_landing   # snapshot a release
traits call sys.release verify gui.straits_landing     # verify compat chain
traits call sys.release test gui.straits_landing       # run feature tests
traits call sys.registry_chain verify                  # verify full hash-chain
traits call sys.straits_call gui.straits_landing.render dark true  # gated call
traits validate traits/sys/                            # backward-compat check

traits.build landing page scope (traits.build)
Phase 1: static marketing with tabbed code examples (API / Python / JS / TOML), 6-feature highlight grid (Polyglot, Composable, AI-Native, Visual Builder, Package Format, Handles & Streaming), SDK installation grid (Rust/Cargo, npm, pip), and install script. Phase 2: embedded live playground, trait marketplace browser, real-time execution demo.