meko

Run Meko locally - server, web UI, and the agents connected to it

meko runs Meko on your computer. It starts the server, the web UI, and the service that brings them back when you log in. Agents connect to that server. Use meko-cli to search, save, and upload.

For a walkthrough of installing, connecting, and uploading a first document, see the Quick start.

Install

On Linux (x64 or arm64) or macOS 14 or newer on Apple Silicon:

curl -fsSL https://mekodata.ai/install.sh | sh

The installer downloads the latest release, starts Meko, and leaves it running. It links meko and meko-cli into ~/.local/bin. Open a new terminal if your shell cannot find them.

Meko keeps its data in ~/.meko (or MEKO_HOME). When that folder is on a network filesystem, Meko uses $XDG_STATE_HOME/meko or /var/tmp/<user>/meko instead, because SQLite locking does not work over the network. meko status --verbose prints the path as Data:.

Meko listens on one port, 7777: the web UI for people, and MCP at /mcp and the REST API at /api/v1 for agents. meko ui opens the web UI. It has no login. See Web UI.

meko status

Wait until that shows the context engine ready. meko-cli fails until then. The first start creates a default datapack.

To connect an agent use:

meko agent connect [claude|codex|kiro|opencode|cursor]

connect takes claude, codex, kiro, opencode, or cursor, and adds Meko for all of that agent's projects. To print the MCP URL and token for any other client, including Claude Desktop, enter meko agent connect without providing a client name.

Get help

Use meko --help and <command> --help to list the flags. Run meko with no command to print the next command for the state Meko is in.

Commands

Every command takes --data-dir. start, restart, and serve also take --port (default 7777) and --log-level (debug, info, warn, or error).

Command What it does
meko install [--no-service] [--access local|remote] [--no-ui] Finish setup: the commands, the login service, and who can open the web UI. local is this computer. remote is every address, over HTTPS. Neither has a login. --no-ui leaves the web UI off until meko ui start.
meko start / stop / restart Start, stop, or restart the server. start and stop do the same for installed extensions. stop --keep-extensions leaves the extensions running.
meko status [--verbose] [--json] Whether Meko is running, the context engine, the service, updates, and extensions, then the links. --verbose adds models, the certificate, storage, and the data folder. --json prints the status reply.
meko serve Run the server in the foreground. This is what the service runs. It is not listed in meko --help.
meko ui Open the web UI in the browser and print its link. With no browser (over SSH, or on Linux without a display), it only prints the link. Extensions' pages are in its sidebar.
meko ui start / stop Turn the web UI on or off, and keep that across restarts. Off closes its port.
meko logs [-f] [-n N] Server and context-engine logs, merged by time. -f follows them. --server, --context-engine, or --service shows one. --json prints the raw lines.
meko version Meko's version, and the Go, SQLite, and sqlite-vec versions it was built with. meko --version prints the same.
meko update [--check] Install the newest Meko release, then each extension's. --check only looks.
meko agent With no subcommand, list list, connect, and disconnect.
meko agent list [--json] Agents on this computer, and whether each one's meko MCP server reaches this Meko. It does not need a running server.
meko agent connect [claude|codex|kiro|opencode|cursor] Add this Meko to that agent, for all of its projects. With no name, print the MCP URL and token for any other client.
meko agent disconnect claude|codex|kiro|opencode|cursor Remove this computer's meko MCP server from that agent. A server pointing somewhere else is left as it is.
meko token [--json] The token MCP and REST clients send. --json also prints the MCP URL, the web UI URL, and whether Meko Cloud is linked.
meko memory-extractor use claude [--every 5m] [--model haiku] Extract memories from your Claude Code conversations, every 5 minutes. off stops it, status reports it, run extracts now. datapack <name> sets one datapack's own extractor (--profile general|coding, --instructions, --off, --on).
meko answers use claude [--model haiku] Have Claude Code write an answer from each search in the web UI. off stops it. status reports it.
meko cloud-link [--url U] [--web-url W] [--api-url A] [--no-browser] [--off] Link Meko Cloud, or unlink with --off. Sign in with the browser, or paste an API key. Agents stay connected to the local Meko, which sends each call to the side that has the datapack. New datapacks are created in Meko Cloud. The web UI does the same under Settings > Meko Cloud.
meko extension With no subcommand, list list, install, update, and delete.
meko extension list [--json] Each extension Meko knows, installed or not, and whether a newer release is waiting.
meko extension install kode [--version V] [-- <options>] Install Kode, run with meko kode, served at /ext/kode/ on the web UI. Options after -- go to Kode: --agent claude|opencode|kiro, --install-deps, --no-install-deps.
meko extension install present Install Present, run with meko present, served at /ext/present/ on the web UI.
meko extension update <name>|--all [--check] [--auto=on|off] Install an extension's newest release and restart it. --auto=off stops Meko installing that extension's updates on its own.
meko extension delete <name> [--purge] [--force] Remove an extension. Its data stays unless you pass --purge. It asks first. --force skips the question.
meko kode <command> [args] Run a Kode command, such as meko kode ui, status, attach <session>, or logs -f. meko kode --help lists them.
meko present <command> [args] Run a Present command, such as meko present status.
meko destroy [--force] [--with-extensions] Stop Meko and delete its data folder. It asks first. --with-extensions uninstalls extensions and deletes their data too.
meko uninstall [--purge [--force]] Remove the extensions, the service, the releases, and the meko and meko-cli commands. The data folder stays unless you pass --purge, which asks first (--force skips the question) and disconnects the agents connected to this Meko.