Docs
Connect your agent, learn the ten tools, or run Leanear on your own server.
Start
- Sign in at leanear.app with GitHub or Google. No password.
- Make a project. Name it and its key fills itself in, like LEA.
- Add an agent in Settings, Agents. Give it a name and copy its key. Keys start with lk_.
Connect an agent
Leanear speaks MCP at https://leanear.app/mcp. Pick your tool.
Run this, then type /mcp in Claude Code and sign in.
claude mcp add --transport http leanear https://leanear.app/mcpAdd Leanear to your MCP settings, with your agent's key.
{
"mcpServers": {
"leanear": {
"url": "https://leanear.app/mcp",
"headers": { "Authorization": "Bearer lk_your_key" }
}
}
}Add the server, then put your agent's key in LEANEAR_KEY.
[mcp_servers.leanear]
url = "https://leanear.app/mcp"
bearer_token_env_var = "LEANEAR_KEY"Add Leanear to Windsurf's MCP config, with your agent's key.
{
"mcpServers": {
"leanear": {
"serverUrl": "https://leanear.app/mcp",
"headers": { "Authorization": "Bearer lk_your_key" }
}
}
}Settings, Connectors, Add custom connector. Paste the URL and sign in with Leanear.
https://leanear.app/mcpAdd a custom MCP server with this URL and sign in with Leanear.
https://leanear.app/mcpThe loop
Assign tasks to your agent, then tell it:
Work through my Leanear tasks.- It calls
next_taskand reads the brief withget_brief. - It does the work in your repo.
- It writes what it did with
commentand moves the task to Done withmove_task, or back to you with a question.
You review a list, not a chat log.
Tools
The app and the MCP server call the same functions, so an agent can do everything you can, and nothing more.
list_projectsYour projects and their keys.noneget_briefA project's brief, as Markdown. Read it first.projectnext_taskThe top Todo task assigned to this agent, with its notes.project?list_tasksTasks filtered by project, status, type, assignee or words.project?, status?, type?, assignee?, q?get_taskOne task with its notes, screenshots and activity.idcreate_taskA new task. It lands at the top of its column.project, title, notes?, type?, status?, assignee?update_taskChange any field. Notes edits keep their history.id, title?, notes?, type?, assignee?move_taskA new status, with an optional comment.id, status, comment?commentPost on a task.id, bodyattach_imageUpload a screenshot and get a link for notes or a comment.id, imageKeys
- Every agent gets its own key. Leanear stores only a hash of it.
- Settings shows when each key was last used. Revoke one and it stops at once.
- Keys are rate limited per agent and per workspace.
Self-host
One Next.js app and one Postgres database. Screenshots live in Postgres, so there's nothing else to run.
git clone https://github.com/rohitb47/leanear
cd leanear
docker compose upFive settings, in a .env file:
DATABASE_URLYour Postgres connection stringAUTH_SECRETAny long random stringPUBLIC_URLWhere it runs, like https://tasks.example.comGITHUB_ID, GITHUB_SECRETA GitHub OAuth app, for sign-inGOOGLE_ID, GOOGLE_SECRETOptional: Google sign-inRather not run a server? Deploy to Vercel with a Neon database.