Areas we serve

Self-Hosted Leon: An Offline-First Personal Assistant With Skills

Alexa will set a timer. It will also ship the recording to a cloud you did not vote for. If you want a voice-and-text assistant that lives on a box you own, with skills you can read, Leon is one of the older open-source bets: not a ChatGPT wrapper, a personal assistant with its own NLU and a skills tree.

Leon (leon-ai/leon, ~17.6k GitHub stars, MIT, TypeScript/Node with a Python bridge for skills) is meant to run on your server. You talk or type; he answers. Offline is a first-class goal, not a footnote. Site and docs: getleon.ai and docs.getleon.ai.

What it is (and is not)

Leon is intent-first. Utterances map to skills, not to a giant language model. Louis Grenard (the maintainer) has been explicit: the NLU stays Leon's own model so the assistant can run 100% offline. LLMs show up later as fallbacks, better entity extraction, and helpers inside skills, not as the only brain. If you wanted "Ollama in a cute UI," that is Open WebUI or Jan. If you wanted a tool-using agent with MCP, look at QwenPaw or Suna. Leon is closer to a private Siri: wake word, STT/TTS, text in the web app, skills you add.

The repo holds the server, bundled skills, web app (port 1337), hotword node, a TCP server for spaCy-style processes, and the Python bridge. Skills are how you add "do this thing" without forking the core. The skills list in skills/ is the honest answer to "what can he do today"; the community skills platform is part of the longer roadmap, not a finished store.

Fair warning from upstream: a new core is in progress, contributions to the old one are blocked because of breaking changes, and the maintainer works evenings. Stars are high; the product is still a long beta. Try it because the architecture matches how you want an assistant to work, not because it ships Alexa-complete skills tomorrow.

Why self-host?

Voice and chat history are the whole product. Self-hosting means STT, skill execution, and logs stay on your VPS. MIT is easy for personal and internal use. You can text Leon with no third-party API at all, then add cloud STT later if you want nicer dictation. That split is the privacy story: start closed, open a pipe only when you choose.

The tradeoff is Node 16+, npm, and (for Docker) the official CLI wrapping an image. GPU is optional unless you bolt on a local LLM later. Hotword and mic need a machine near you; a Canadian VPS is better for the server and text UI than for "Hey Leon" across the living room unless you tunnel audio, which most people will not bother with.

Quick start

npm install --global @leon-ai/cli
leon create birth          # stable; add --develop or --docker as needed
leon check
leon start
# http://localhost:1337

Gitpod exists if you only want a click-to-try. Put TLS in front of 1337 before it leaves localhost. Do not confuse this CLI with random "leon" npm packages; the scoped package is @leon-ai/cli.

Who it is for

Good fit: people building small household skills (weather, timers, home HTTP) on a private box; developers who like the "one core, many skills" layout; anyone who wants speech in and speech out without sending audio to a US vendor by default.

Skip it: if you need a polished multi-user ChatGPT clone this week; if you want an LLM to write your skills for you (Kestra Copilot / Open WebUI); if you cannot tolerate a project in a core rewrite. Watch the roadmap and Discord before you promise Leon to a client.

Hosting in Canada

The HTTP/text side of Leon is a modest Node app. A small CloudBox VPS in Canada is enough for the server and web UI, with backups of config and skill data. Keep STT local if that is why you self-hosted. PIPEDA-minded households care that the assistant is not a side channel to a speech vendor. If you add a cloud LLM as fallback, say so in your own head: that path leaves the country.

Bottom line

Leon is a privacy-first personal assistant with skills, not a chat window glued to GPT. It is young in features and old in GitHub years, which is a weird combination and also why people still star it. Install it if you want that shape. Use Open WebUI if you actually wanted a chatbot.

Talk with Swift Host if you want a Canadian VPS for Leon's server (or for Open WebUI, if that is the real job). We are in St. Albert and actually answer the phone.

Tags:
  • Leon
  • Personal Assistant
  • Voice
  • Self-Hosted
  • Node.js

Need Help With Your Hosting?

Tell us about your application — we respond within 1 hour with honest recommendations.