kilian-ai // independent systems & agentic development lab

Exploring AI-assisted software development, research and writing.

Featured projects include:

  • linuxontab.com — a Linux environment running entirely in the browser
  • getclaw.site — an agentic LLM shell and terminal-native REPL environment
  • slob.games — an AI agent-powered browser arcade and game generation platform

Built independently with a focus on runtime systems, WebAssembly, AI tooling, and browser infrastructure.

Project Showcase

Screenshots and project summaries for all three projects.

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.
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.

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.