Three steps: get your key, run one command, claim your installation.
Lyriks runs on your own machine, in containers. The installer checks what is there, names anything missing and asks for your consent before touching it: nothing is installed silently, and re-running it is always safe.
registry.lyriks.io, which is where the appliance images come from. This is the one network dependency, and the installer probes it before pulling anything.Everything else (the database included) ships inside the containers.
Nothing is written outside ~/lyriks and Docker volumes.
Ask for a free Community licence key on get.lyriks.io:
an address is all it takes. The mail comes from
support@lyriks.io, usually within a minute, and carries the
key, the command below and a link back to this page. Keep the key private,
as you would a password.
It goes to that address and to no other, because the key names it: your installation later asks for the pair and checks one against the other, so receiving the mail is what makes the installation yours rather than someone else's.
Give it five minutes first: the mail leaves the moment you submit the form, but a relay can hold it briefly. After that, work down this list. It is in the order these things actually happen.
lyriksNot just the inbox. A mail carrying a licence key and a shell command is exactly what a filter puts aside: look in Spam and Junk, and in the places that hide mail without telling you, like Gmail's Promotions tab or Outlook's Other tab.ada@compagny.com is a perfectly deliverable address that simply is not yours. Ask again with the right one.support@lyriks.io to your contacts or to your allow list. On a company mailbox that is often the whole story: the mail was quarantined by a rule you never see, and whoever runs your mail can release it./activate, inside the app, is a later thing: it is where an
administrator replaces or renews a key on an installation that is already
claimed.No folder to make, no flags to pass, no account to create. Run it
from wherever your terminal opens: the installer creates its own folder,
~/lyriks, in your home directory and installs everything
there. Pick your system.
In a terminal:
$ curl -fsSL https://get.lyriks.io | sh
Run it as yourself, not with sudo: it asks for your
password itself, only for the steps that need it (installing Docker,
letting your user use it, a kit directory outside your home).
Docker missing? It is proposed, and the official Docker install script runs only after you consent (it will ask for your password). On macOS the same question installs Docker Desktop: through Homebrew when you have it, otherwise straight from Docker's own installer. A Mac on macOS 12 or 13 gets the last Docker Desktop that still runs there, installed the same way.
In a normal PowerShell window, not an administrator one: Lyriks must land in your own session, next to the browser you will use it from.
> irm https://get.lyriks.io/windows | iex
Lyriks runs Linux containers, so Windows needs WSL2 and Docker
Desktop. Both are proposed (through winget) and each waits for your
consent. Installing WSL needs one administrator window and a reboot, after
which you run the command again from a normal window. You never have
to touch WSL yourself: the script hands over to the Linux installer
inside your distribution and Lyriks ends up at ~/lyriks
in there, used from your Windows browser.
~/lyriks, then runs its own doctor and install: containers, database, everything.http://localhost:3000, ready to be claimed.--dry-run prints
every command the installer would run, without running any of them.--yes consents to every proposed install up front (Windows: $env:LYRIKS_YES = '1' before the command).--port 8080 serves Lyriks on another port (Windows: $env:LYRIKS_PORT = '8080').--license-key lyk_... activates the licence during the install (Windows: $env:LYRIKS_LICENSE_KEY = 'lyk_...'). Optional, and it does not shorten the claim: that screen asks for your address and your key either way.--reinstall destroys an existing install, data included, then installs fresh. Without it, re-running repairs in place and keeps your data.Flags go after sh -s --, like this:
curl -fsSL https://get.lyriks.io | sh -s -- --yes --port 8080.
The installer creates no account and asks for no identity, on purpose: the person who owns the licence is the person who claims the box, and they prove it themselves. So a fresh Lyriks has no user at all until you open it.
Open http://localhost:3000. Under Claim this
installation:
You land in your workspace, ready for a first project. Two things worth knowing straight away.
Lyriks speaks MCP, so your assistant can read and author your projects directly instead of you copying things between windows. It is optional and never a dependency: Lyriks works exactly the same without it.
Register it once for your machine, not for one folder. Most clients default to the current project, and the server then disappears the moment you open another one.
$ claude mcp add --scope user --transport http lyriks http://localhost:3000/mcp
Claude Code
$ codex mcp add lyriks --url http://localhost:3000/mcp
OpenAI Codex
$ gemini mcp add --transport http lyriks http://localhost:3000/mcp
Gemini CLI
$ code --add-mcp '{"name":"lyriks","type":"http","url":"http://localhost:3000/mcp"}'
VS Code and GitHub Copilot
Add the server to the file your client reads, then restart it.
~/.cursor/mcp.json:{ "mcpServers": { "lyriks": { "url": "http://localhost:3000/mcp" } } }~/.gemini/config/mcp_config.json:{ "mcpServers": { "lyriks": { "serverUrl": "http://localhost:3000/mcp" } } }~/.codeium/windsurf/mcp_config.json: same shape as Antigravity.http://localhost:3000/mcp. A client
that only drives local servers goes through the mcp-remote
bridge: npx -y mcp-remote http://localhost:3000/mcp.Everything happens from the kit directory, ~/lyriks (inside
your WSL distribution on Windows):
./lyriks status shows what is running, start and stop do what they say../lyriks update moves to the current release, keeping your data, and ./lyriks rollback steps back to the previous one../lyriks backup create takes a backup you can restore later../lyriks destroy --confirm removes the stack and its data. That one is final.Nothing to launch. Lyriks is set to restart with Docker, so the whole appliance comes back on its own. The only thing that has to start is Docker, and only Linux does that for you:
Cmd+Space, type
Docker, Enter, or open -a Docker in Terminal).
It is ready when the whale in the menu bar, top right, stops animating.sudo systemctl enable --now docker, once, and Docker
starts with the machine from then on.On macOS and Windows, Docker Desktop, Settings, General, Start Docker Desktop when
you sign in makes even that disappear. Then reopen
http://localhost:3000: same account, same password, same data.
Start Docker: it is what your reboot switched off, and Lyriks
restarts by itself right after. On a Mac, press Cmd+Space,
type Docker, press Enter, and watch the whale icon in the
menu bar at the top right until it stops animating. On Windows, open Docker Desktop
from the Start menu. Then reload http://localhost:3000, giving it a
minute. Nothing appears inside the Docker Desktop window itself, and nothing should:
it runs the engine, the app is the browser tab. Details in
After a reboot.
Still nothing once Docker is running? The stack was stopped at some point. From
Terminal, cd ~/lyriks && ./lyriks up, then
./lyriks status.
Search the whole mailbox for lyriks, spam and the
hidden tabs included, then ask again on get.lyriks.io:
the same address always receives the same key, so a second request
costs nothing. If your company filters mail hard, an address you own
personally settles it in a minute.
Still nothing? Write to support@lyriks.io and we send the key by hand. The full list, cause by cause, is in If the email does not arrive.
It says which of the four it is, and each has its own fix:
lyk_ to the last character, with no space before or after.Several wrong tries in a row are throttled for a few minutes. That is the claim screen protecting itself, not your key being refused: wait, then try again.
The daemon is not running, or your user is not allowed to use
it yet. The installer tells the two apart: it starts Docker for
you, or adds you to the docker group and bridges the
rest of the run (with sg docker, or sudo
where that cannot work). Group membership takes effect at your next
login, so open a new shell before running ./lyriks by
hand. If Docker itself is stopped:
sudo systemctl enable --now docker. On macOS and
Windows, start Docker Desktop and wait for its whale icon to
settle.
Say yes to WSL, reboot when asked, let Ubuntu finish its first-run setup, then run the command again. Use a normal PowerShell window, never an elevated one: an elevated install lands in the administrator's session, invisible from your own browser. If Docker Desktop is running but the distribution cannot see it, enable it under Settings, Resources, WSL integration.
The installer needs outbound HTTPS to
registry.lyriks.io. Behind a corporate proxy or a
captive portal, that is usually what fails. Authorise the host, or
configure Docker's proxy settings, then run the command again.
Run the same command again. Every step reconciles, your data lives
in Docker volumes and is preserved, and a repair is the default. Use
--reinstall only when you truly want to start from
zero, data included.
Nothing is lost and nothing has to be reinstalled: the appliance is running and waiting to be claimed. What it will not do is open, because claiming asks for your address and your key together. Get the key on get.lyriks.io, it takes a minute, then claim the install that is already there.
Not arriving? If the email does not arrive walks the causes.
Reply to the email that carried your key: it reaches us. No email to reply to? Write to support@lyriks.io, which is the same mailbox and is read by a person. From inside Lyriks, the Leave us feedback button in the header files the same thing with your versions attached.
The Community licence is free, never expires and covers one operator seat. An email address is the whole form, and the key arrives with the command that installs Lyriks.