Getting started on a PC
This page takes you from nothing to a working me on Windows: the server, the CLI, your first task and note,
Claude Code using me, and your first integration. Allow about 20 minutes, most of it the first build.
Today you install from the source checkout. Installing with
wingetandnpmis coming soon (PR #153).
What you need
Section titled “What you need”- Windows 10 or 11, and PowerShell 7 (
pwsh). - The .NET 10 SDK (version 10.0.204 or later; the repo’s
global.jsonpins it). - Podman, with a running Podman machine and
podman compose. Postgres and Temporal run in it. - git, and a clone of
VNUALT/Me.CLI.
1. Install
Section titled “1. Install”From the repo root, in your own terminal:
pwsh deploy/local/install.ps1This command:
- publishes the server, every production plugin and the
meCLI into%LOCALAPPDATA%\Me; - generates the database password and the server’s signing key once, readable by you and SYSTEM only (they are also copied into the server’s settings file, which is restricted the same way);
- starts Postgres and Temporal in Podman;
- registers the scheduled task Me server, which starts the server at logon, and starts it now.
Everything listens on loopback only: the server on 127.0.0.1:5041, Postgres on 55432, and Temporal on 7243
(its UI is on 8243).
Put the CLI on your PATH, for your user only:
[Environment]::SetEnvironmentVariable('Path', [Environment]::GetEnvironmentVariable('Path', 'User') + ";$env:LOCALAPPDATA\Me\cli", 'User')$env:Path += ";$env:LOCALAPPDATA\Me\cli" # this terminal tooRe-running install.ps1 after a git pull upgrades the install. It keeps your secrets, data, tokens and tunnel. All
parameters are described in the operator guide.
2. Create your tenant and log in
Section titled “2. Create your tenant and log in”Me.Server.exe setup creates the first tenant and its owner (you), once, on this PC. It prints JSON with a secret:
your first personal access token, shown only this once. Capture it and pipe it into me login, so it never appears
on a command line or in your history:
$o = & "$env:LOCALAPPDATA\Me\server\Me.Server.exe" setup --tenant "My household" --owner "Your name" | Select-String '"secret"'($o.Line | ConvertFrom-Json).secret | me login --server http://127.0.0.1:5041 --token-stdinme whoami # {"tenant":"tn_…","principal":"pr_…","kind":"human","name":"Your name"}setup refuses to run a second time once a tenant exists. For another device, run me token create --name laptop
and log in there with that secret. --another adds a separate tenant.
3. Turn on the plugins
Section titled “3. Turn on the plugins”Plugins are installed with the server but are off until a tenant enables them:
me plugin enable --allme plugin listRight after the server (re)starts, plugins take a minute to register. If one is missing from the answer, run
me plugin enable --all again a minute later.
4. Your first task, note and search
Section titled “4. Your first task, note and search”me task create --title "Call the plumber about the water heater" --due 2026-10-22T17:00:00-04:00 --tags homeme note create --title "Water heater" --body "50 gal, installed 2014. Pilot keeps going out."me find "water heater" # the task and the note, ranked, with highlighted snippetsme task review # overdue, waiting-on and stalled workA few habits that help:
me helplists every command, andme help task createshows one command’s flags and which are required.- Results carry refs (
task_01J…). Pass them tome get,me relationsor other commands. --dry-runshows what a command would do, without doing it.- In a terminal you get readable text. When piped, you get JSON.
--jsonor--humanforces either.
The demo guide has more flows that were checked on a live install: bank statements and unusual charges, triggers, recurring tasks, memory and workflows.
5. Use me from Claude Code
Section titled “5. Use me from Claude Code”me mcp is an MCP server over stdio. Every command generated from a contract (operations, queries and resource lists) is a tool (task_create,
money_spend, attention_pending…),
plus me_get, me_relations, me_operation and me_artifact, and it sends the me skill as its instructions.
claude mcp add me -- "$env:LOCALAPPDATA\Me\cli\me.exe" mcpme skill install # optional: writes ~/.claude/skills/me, so Claude knows the CLI tooTo make urgent items reach Claude Code at the start of your next prompt, add this hook to .claude/settings.json:
{ "hooks": { "UserPromptSubmit": [ { "hooks": [ { "type": "command", "command": "me attention hook" } ] } ] } }Then ask Claude things like “what’s overdue, and what needs my attention?”. Claude calls me tools, quotes refs back,
and stops at approvals: sends wait for you, and payments always need your passkey.
Give Claude Code its own identity
Section titled “Give Claude Code its own identity”The commands above run Claude Code as you. To let it act as an agent with a delegation you control:
-
Register the agent. This creates it with its default delegation: everything but payments, up to ExternalReversible / Confidential, for 90 days.
Terminal window me agent register "Claude Code" -
Issue a token for it. The secret is shown once.
Terminal window me token create --name claude-code --principal pr_… -
Log in with that token, into a config file in its own folder. The stored token is named per folder and server, so a config next to your own
%APPDATA%\me\config.jsonwould overwrite your login.Terminal window $env:ME_CONFIG = "$env:APPDATA\me\claude-code\config.json"<secret> | me login --server http://127.0.0.1:5041 --token-stdinRemove-Item Env:ME_CONFIG # back to your own login in this terminal -
Register the MCP server with that config:
Terminal window claude mcp add me -e ME_CONFIG="$env:APPDATA\me\claude-code\config.json" -- "$env:LOCALAPPDATA\Me\cli\me.exe" mcp
me whoami (with that config) then shows "kind":"agent", and me policy explain <op_…> shows it acted on your
behalf. me agent list shows what it holds, and me agent revoke removes it.
Coming soon:
me agent connect claude-codedoes all of this in one step (PR #127).
6. Connect your first integration
Section titled “6. Connect your first integration”Integrations are accounts at a provider: a calendar, a mailbox, Teams, a phone number, Claude. You add them; agents can’t. See which providers you can set up, and their fields:
me integration listme integration add com.me.calendar.m365 --help # one provider's settings as flags, and which are secretThe quickest one to try is Claude, as the system’s writer. It phrases messages to people and reads their replies:
me integration add com.me.model.anthropic --name Claude # paste an API key, or a `claude setup-token` token, at the hidden promptA claude setup-token token uses your Claude subscription instead of a pay-per-use API key; Claude Code must then be
installed on this PC (details).
For your Microsoft 365 calendar, you sign in once in the browser and type no secret. Today you need the client id of an Entra app registration. The Microsoft 365 guide shows how to create one in a few minutes:
me integration add com.me.calendar.m365 --name "Work calendar" --client-id <application id>me calendar agenda --from 2026-10-21T00:00:00-04:00 --to 2026-10-22T00:00:00-04:00Coming soon: people only sign in. The operator registers the Microsoft app once for everyone, so you no longer pass
--client-id(PR #140).
Every provider is covered in Integrations.
Where things are
Section titled “Where things are”| What | Where |
|---|---|
| The install | %LOCALAPPDATA%\Me (server, plugins, cli, config) |
| Generated secrets | %LOCALAPPDATA%\Me\config\secrets.json (you and SYSTEM only) |
| Your CLI login | %APPDATA%\me\config.json, or the file ME_CONFIG names |
| Data | Podman volumes me-local_me-local-postgres and me-local_me-local-temporal |
| Restart the server | Stop-ScheduledTask 'Me server'; Start-ScheduledTask 'Me server', then give it about 40 seconds |
If something goes wrong
Section titled “If something goes wrong”podman pullfails withproxyconnect tcp. A proxy leaked into the Podman machine. The installer prints the fix:podman machine ssh 'env -u HTTPS_PROXY -u https_proxy -u HTTP_PROXY -u http_proxy podman pull <image>', then run the installer again.- The logon task fails with “file not found” (
0x80070002). This happens wheninstall.ps1runs inside a packaged app (for example, a Claude Code session in the desktop app), where Windows redirects%LOCALAPPDATA%. Run it from your own terminal, or pass-Rootwith a folder outside%LOCALAPPDATA%. - Workflows are refused. Temporal isn’t running. Check
podman ps, and re-runinstall.ps1. mesays you are not logged in (exit 9). Runme statusto see which config file it uses, thenme loginagain.