Linggen: a self-hosted agent system where each skill is a full app with its own web UI — and one memory your other agents share

Linggen is two binaries written in Rust: ling and ling-mem.

ling is an agent system, similar to Claude Code or Codex — but it isn't only a harness for writing code or docs. It's also an engine for AI-native apps. I extended the skill system so a skill is an app, with its own web UI. The ones I've built as samples — CFO, DJ, Health — are skills and AI-native apps at the same time: driven by an agent, with dynamic UI and dynamic content.

ling-mem is the memory system. It works with ling, and with other agents like Codex and Claude Code — if you run several agents, they can share one memory. It isn't just a store. It remembers, recalls, audits, merges, dedupes and forgets.

Forget is the most important part of a good memory system. That's what keeps memory neat and clean.

All of it happens in a scheduled mission called Dream. After a dream, an episodic memory has either become semantic or been forgotten.

Both ling and ling-mem are web servers. Run them on a machine in your LAN and a team can share one memory; point another machine's agent at it with /linggen:config --ling-mem 192.168.1.5:9528 --token <t>. Sharing needs a paired device token — the memory daemon refuses to start on a non-loopback bind without one, so you can't widen it by accident. Run them on a machine at home instead and the phone app reaches them from anywhere over WebRTC.

Models are your choice. The default routing policy is local-first: it picks your Ollama model and only falls back to cloud when there isn't one. I run qwen3.8:27b-mlx.

Deployment:

curl -fsSL https://linggen.dev/install.sh | bash ling-mem start --host 0.0.0.0 ling --web --host 0.0.0.0 

macOS and Linux, no runtime deps, and both daemons take --foreground for systemd/launchd. No Docker image yet — it wants your files and your Ollama, so it has always run as a plain binary. If there's appetite here for a compose file I'll do one.

Not self-hosted, up front: there's an iPhone companion that's an App Store binary, and off your LAN it finds the machine through a signaling endpoint at linggen.dev — registration, heartbeat, SDP exchange. Media is WebRTC peer-to-peer with public STUN, so no chat or file traffic crosses my server. On the LAN it's Bonjour and nothing of mine is involved.

AI involvement: I designed the system, coding is by AI. I run every build on my own machine before it ships and use it daily — 719 commits across 125 active days since February, 59 files carrying tests.

Feel free to try them — open source under Apache 2.0 at https://github.com/linggen/linggen

submitted by /u/Training_Isopod3722
[link] [留言]