Lovelaice
A sovereign, local-first coding agent for the terminal. A native tool-calling ReAct loop (read/bash/write/edit/glob/list_dir), yolo by default. Three ways to run it:
- One-shot — streams to stdout and exits:
lovelaice "<prompt>"(piped stdin works too). - ACP server —
lovelaice-acpspeaks the official Agent Client Protocol v1 over stdio, so any ACP client (e.g. aegis, Zed) can drive lovelaice as a native, harness-free agent — local or direct-API models, no external CLI. Supports streaming, per-session MCP tools, token usage, andload_sessionresume. Seeknow-how/acp-v1-server.md. - Library —
lovelaice.agent.Agent/lovelaice.coding.create_coding_agentembed the engine directly.
Install
pipx install lovelaice
Configure
lovelaice --init writes a .lovelaice.py in the current directory.
This file grounds the workspace: when you run lovelaice from any
subdirectory, it walks up to the nearest .lovelaice.py and chdirs
to its directory before running. Exactly one config grounds the
workspace — there is no stacking.
Set OPENROUTER_API_KEY in your environment before running.
export OPENROUTER_API_KEY=sk-or-...
lovelaice
Commands and tools
The .lovelaice.py registers tools and commands as decorators on a
Config object. Built-in tools: bash, read, write, edit,
list, glob, grep, fetch. Add your own with @config.tool.
See know-how/writing-a-tool.md and know-how/writing-a-command.md.
Thinking mode
Add thinking="high" (or "low"/"medium", or an integer token
budget) on a model entry to enable OpenRouter's reasoning passthrough.
Reasoning chunks render in a separate dim-italic panel above the
agent's reply. Non-OpenRouter base URLs silently ignore the knob —
v1 does not translate reasoning protocols across providers.
MCP
Pass mcp=[...] to Config(...) to spawn stdio MCP servers and
register their tools. Tool names are prefixed mcp:<server>:<tool>.
config = Config(
models=MODELS,
prompt=PROMPT,
mcp=[
{"name": "filesystem", "command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "."]},
],
)
License
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lovelaice-2.12.0.tar.gz.
File metadata
- Download URL: lovelaice-2.12.0.tar.gz
- Upload date:
- Size: 194.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47c97bed6c4a3d84f2ead9d82fa38251041cec5d2c0bbd36dca619821154457f
|
|
| MD5 |
3165f0f43c31f0813033126c216467b5
|
|
| BLAKE2b-256 |
1de4e2d29ebe73e3505d76013763bf69e1e808a99ef2b447c40abcada02d59d3
|
File details
Details for the file lovelaice-2.12.0-py3-none-any.whl.
File metadata
- Download URL: lovelaice-2.12.0-py3-none-any.whl
- Upload date:
- Size: 55.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53843eb3c9b74f7f8b512b32a68187438d023b1772c0fd72596c2503c76c4082
|
|
| MD5 |
acc18e9b7145b1dad24ceddae860ca54
|
|
| BLAKE2b-256 |
5c264afc7ab307d83e61ca68be578f5388550e5e161c43ea163b570b00c90813
|