Docs

Connect your agent, learn the ten tools, or run Leanear on your own server.

Start

  1. Sign in at leanear.app with GitHub or Google. No password.
  2. Make a project. Name it and its key fills itself in, like LEA.
  3. 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.

Claude Code

Run this, then type /mcp in Claude Code and sign in.

Command
claude mcp add --transport http leanear https://leanear.app/mcp
Cursor

Add Leanear to your MCP settings, with your agent's key.

~/.cursor/mcp.json
{
  "mcpServers": {
    "leanear": {
      "url": "https://leanear.app/mcp",
      "headers": { "Authorization": "Bearer lk_your_key" }
    }
  }
}
Codex

Add the server, then put your agent's key in LEANEAR_KEY.

~/.codex/config.toml
[mcp_servers.leanear]
url = "https://leanear.app/mcp"
bearer_token_env_var = "LEANEAR_KEY"
Windsurf

Add Leanear to Windsurf's MCP config, with your agent's key.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "leanear": {
      "serverUrl": "https://leanear.app/mcp",
      "headers": { "Authorization": "Bearer lk_your_key" }
    }
  }
}
ChatGPT

Settings, Connectors, Add custom connector. Paste the URL and sign in with Leanear.

Command
https://leanear.app/mcp
Gemini

Add a custom MCP server with this URL and sign in with Leanear.

Command
https://leanear.app/mcp
Each agent shows up as a member with its own name, so the activity on a task always says who did what.

The loop

Assign tasks to your agent, then tell it:

Command
Work through my Leanear tasks.
  1. It calls next_task and reads the brief with get_brief.
  2. It does the work in your repo.
  3. It writes what it did with comment and moves the task to Done with move_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.none
get_briefA project's brief, as Markdown. Read it first.project
next_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.id
create_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, body
attach_imageUpload a screenshot and get a link for notes or a comment.id, image

Keys

Self-host

One Next.js app and one Postgres database. Screenshots live in Postgres, so there's nothing else to run.

Terminal
git clone https://github.com/rohitb47/leanear
cd leanear
docker compose up

Five settings, in a .env file:

DATABASE_URLYour Postgres connection string
AUTH_SECRETAny long random string
PUBLIC_URLWhere it runs, like https://tasks.example.com
GITHUB_ID, GITHUB_SECRETA GitHub OAuth app, for sign-in
GOOGLE_ID, GOOGLE_SECRETOptional: Google sign-in

Rather not run a server? Deploy to Vercel with a Neon database.