惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
D
Docker
WordPress大学
WordPress大学
罗磊的独立博客
J
Java Code Geeks
博客园 - 【当耐特】
博客园 - 司徒正美
雷峰网
雷峰网
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
B
Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - abi/lilo
abi · 2026-04-25 · via Hacker News: Show HN

Lilo

Lilo is an agentic personal OS — your apps, your memories, your files, your agent, in one workspace.

Ask your agent to build apps, customize your OS, remember things, and tackle your TODOs using everything in your workspace.

Reach it from desktop, mobile, WhatsApp, Telegram, or email. Ships with a starter set of apps; reshape anything.

Join the Lilo Discord License: MIT

todo-list-demo.mp4

Features · Quick start · Configuration · Workspace apps · External messaging · Deployment


Features

🧱 Apps on demandShips with a starter set (Desktop launcher, Todo, Calories, Calculator, Wordpad, Minesweeper) and you can ask the agent to build more. All apps have full agentic capabilities.
🗂️ Full workspaceStore anything as files in the filesystem and preview markdown, code, images, and PDFs inline — accessible to both you and the agent.
💬 Talk to Lilo anywhereInbound message webhooks for Email (Resend), WhatsApp (Twilio), and Telegram. The agent replies in the same channel and keeps a persistent chat per contact.
🧠 MemoryRemembers details about you, your tasks, and your work.
🎨 Rich tool suiteImage generation (Replicate), web search & scraping (Firecrawl), headless browser automation (Browserbase), filesystem ops, shell execution, network fetch — all callable by apps and the agent when configured.
📱 Mobile-readyOptimized for phones. All apps render seamlessly on both.
🔐 Password-gated and privateOne env var locks down the entire web app and all backend APIs (REST + WebSocket). Webhooks stay accessible with their own provider-signed requests.
🧰 Model-agnosticPick between GPT 5.4 (OpenAI) and Claude Opus 4.7 (Anthropic) per chat. Switch mid-conversation.
🔄 Git-backed cloud syncOptionally sync your workspace to a git remote so the entire workspace (apps, data, and memories) is versioned and portable across devices.
⌨️ Keyboard-first UX⌘K / Ctrl+K command palette for instant app switching. Browser back/forward navigates between previously opened apps.

Quick start

Prerequisites

  • Node.js 20+
  • pnpm 10+
  • An API key for at least one of: OpenAI, Anthropic

1. Install

git clone https://github.com/abi/lilo.git
cd lilo
pnpm install

2. Configure

Create a .env.local at the repo root:

# Required
LILO_WORKSPACE_DIR=./workspace          # where the agent's files live
LILO_SESSIONS_DIR=./.lilo-sessions      # persistent chat session storage

# At least one chat model
OPENAI_API_KEY=sk-...                   # enables GPT 5.4
ANTHROPIC_API_KEY=sk-ant-...            # enables Claude Opus 4.7

# Recommended
LILO_AUTH_PASSWORD=choose-a-strong-password   # locks down the whole app

See Configuration for the full list.

3. Run

pnpm run dev   # backend (http://localhost:8787) + frontend (http://localhost:5800) + typechecks

Open http://localhost:5800. If you set LILO_AUTH_PASSWORD, you'll get a login screen on first visit.

Your workspace should be auto-bootstrapped from the bundled
[workspace-template/](./workspace-template), so you'll immediately have a
Desktop, TODO list, Calories tracker, and a handful of other apps to play with.


Configuration

All env vars are read from (in order of precedence):

  1. Shell-exported variables
  2. .env.local at the repo root
  3. .env at the repo root

Core

Variable Required Default Description
LILO_WORKSPACE_DIR Directory the agent works in. Auto-bootstrapped from workspace-template/ if empty.
LILO_SESSIONS_DIR Where persistent Pi chat sessions (chats/) and app sessions (apps/) are stored.
LILO_AUTH_PASSWORD unset (open) Single-password login for the web app + all APIs + WebSockets. Leave unset for a fully open local instance.
LILO_AUTH_SESSION_SECRET LILO_AUTH_PASSWORD HMAC secret for the session cookie. Rotate to invalidate all existing sessions.
PORT 8787 Backend HTTP port.

Chat models

At least one is required to actually use Lilo.

Variable Enables
OPENAI_API_KEY GPT 5.4, GPT 5.4 Mini
ANTHROPIC_API_KEY Claude Opus 4.7

Limit the chat dropdown/API to specific models with a comma-separated allowlist:

LILO_CHAT_MODEL_ALLOWLIST=gpt-5.4-mini

Supported model ids: claude-opus-4-7, gpt-5.4, gpt-5.4-mini.

Agent tools (optional)

Each one unlocks a corresponding agent tool. Missing keys just disable the tool — the agent keeps working without them.

Variable Tool
REPLICATE_API_KEY generate_images, remove_background
LILO_DEFAULT_IMAGE_MODEL Image model — nano-banana (default), nano-banana-2, flux-2-klein-4b
FIRECRAWL_API_KEY web_search, web_scrape
BROWSERBASE_API_KEY browser_automate
BROWSERBASE_PROJECT_ID Optional project id; usually inferred

Git sync (optional)

Point WORKSPACE_GIT_URL at a git repo to make LILO_WORKSPACE_DIR git-backed on boot. If the workspace is not already a git repo, Lilo initializes one and sets origin to this URL; if it is already a repo, Lilo keeps origin in sync with this value. This keeps your workspace (apps, data, and memories) versioned and portable across hosts. The frontend shows a manual "Sync" button that runs pull/rebase and push; it expects workspace changes to be committed first. Hide it with VITE_DISABLE_WORKSPACE_SYNC when you aren't using this flow.

Variable Scope Description
WORKSPACE_GIT_URL backend Git remote to configure as origin for LILO_WORKSPACE_DIR.
VITE_DISABLE_WORKSPACE_SYNC frontend Hide the Sync button in the UI (build-time Vite flag).

Frontend observability (optional)

Set at build time — Vite only inlines VITE_* vars.

Variable Description
VITE_ENABLE_SENTRY / VITE_SENTRY_DSN Opt in to Sentry for browser errors.
VITE_ENABLE_LOGROCKET / VITE_LOGROCKET_APP_ID Opt in to LogRocket session replay.

Backend observability (optional)

Variable Default Description
ENABLE_SENTRY false Opt in to Sentry for backend errors.
SENTRY_DSN unset Backend Sentry DSN.

Workspace apps

The most distinctive thing about Lilo: the agent builds its own apps. Each app lives as a directory of HTML + assets under $LILO_WORKSPACE_DIR/, runs in a sandboxed iframe, and can read/write its own files, open chats, and make HTTP calls through a built-in window.lilo API. Ask the agent "build me a habit tracker" and it scaffolds one — no build step.

Full guide: docs/workspace-apps.md (directory layout, the window.lilo API surface, and the in-viewer element picker).


External messaging

Lilo can be an email/SMS/Telegram chatbot. Each channel is an opt-in plugin — leave its env vars unset and it's disabled.

Email (Resend)

RESEND_API_KEY=re_...
RESEND_WEBHOOK_SECRET=whsec_...
LILO_EMAIL_TO=hi@yourdomain.com        # your bot's inbound address
LILO_EMAIL_FROM="Lilo <lilo@yourdomain.com>"
EMAIL_ALLOWED_EMAILS=you@yours.com,partner@theirs.com   # allowlist
  1. Set up a receiving domain in Resend.
  2. Create a webhook pointing to https://your-lilo/api/inbound-email with the email.received event.
  3. Send Lilo an email; it replies in-thread.

Replies set Reply-To: LILO_EMAIL_TO, so the recipient's reply round-trips back into the same inbox.

WhatsApp (Twilio)

TWILIO_ACCOUNT_SID=AC...
TWILIO_AUTH_TOKEN=...
TWILIO_WHATSAPP_FROM_NUMBER=whatsapp:+15555550123
WHATSAPP_ALLOWED_FROM=whatsapp:+15555550124

Point a Twilio WhatsApp webhook at https://your-lilo/api/inbound-whatsapp.

Telegram

TELEGRAM_BOT_TOKEN=123456:ABC-...

Point your Telegram bot webhook at https://your-lilo/api/inbound-telegram.

Each contact gets their own persistent chat, so the agent remembers your conversation across messages.


Deployment

Railway (recommended)

./scripts/setup-railway.sh

The interactive setup script will:

  • Link or create a Railway project named lilo
  • Prompt for the GitHub repo to connect
  • Set core env vars
  • Mount a persistent volume at /data for LILO_WORKSPACE_DIR + LILO_SESSIONS_DIR
  • Generate a public domain on port 8080

You still configure the optional message-channel keys (Resend / Twilio /
Telegram / Firecrawl / etc.) from the Railway dashboard.


Development

pnpm run dev            # run backend + frontend + live typechecks in parallel
pnpm run dev:backend    # port 8787
pnpm run dev:frontend   # port 5800
pnpm run dev:template   # like `dev` but with LILO_WORKSPACE_DIR pointed at the bundled template (useful for trying out the default apps without polluting your own workspace)
pnpm run build          # build both packages
pnpm run lint           # oxlint across the repo
pnpm run format         # oxfmt across the repo

Contributing

This is an open source project. Issues and PRs welcome — keep components small and one-file-per-concern (see AGENTS.md).

Join us on Discord to ask questions, share workspace apps you've built, or follow development.

License

MIT