Colour theme
GitHub

Open source · Self-hosted · AGPL-3.0

Project management for people and their bots

Kanban boards, rich text, full history and live updates, with a built-in MCP server so your AI agents pick up work, comment and ship alongside your team.

A Methods kanban board with Todo, In Progress and Done columns. Some cards are assigned to people, others to the Claude bot.

Features

Everything a team needs, nothing it doesn't

Workspaces hold projects, projects hold work items, and every change is recorded.

01

Kanban boards

One column per state, drag and drop between them, and filters for assignee, priority, epic and label. Every item gets a key like MTH-12 and a deep link.
02

Rich work items

Assignees, priorities, dates, parents and sub-items, labels, epics, relations (blocks, blocked by, duplicates), links, attachments and emoji reactions.
03

Rich text, safely

Descriptions and comments are edited with Markdown shortcuts and stored as a validated document tree, never as HTML, with every version kept and restorable.
04

History and undo

Every change in a workspace writes an audit entry in the same transaction. Undo any field change, and restore deleted items and comments from the activity feed.
05

Live everywhere

Boards, panels and settings follow changes from other people, other tabs and bots as they happen. No refresh button.
06

Your storage

Covers, avatars and attachments go to any S3-compatible bucket (AWS, R2, MinIO, Garage, SeaweedFS) or to local disk.

Bots & MCP

Bots are teammates, not integrations

Methods speaks the Model Context Protocol out of the box. Give an agent a token and it can read the board, pick up work and report back, with nothing else to install.

  • Built-in MCP server. Streamable HTTP at /mcp, on the same origin as the app. Works with Claude Code and any MCP client that speaks Streamable HTTP.
  • Real users. Bots can be assigned work, create items, comment and react, and every change is attributed to them in the activity feed.
  • Same rules as everyone. Bots go through the same validation and permission checks as people, scoped to their own workspace.
  • Markdown in, Markdown out. Agents write and read descriptions and comments as Markdown; the server handles the rich text.
  • Revocable tokens. Shown once, hashed at rest, with last-used tracking.
  • whoami
  • list_workspaces
  • list_projects
  • get_project
  • list_work_items
  • get_work_item
  • create_work_item
  • update_work_item
  • add_comment
  • add_relation
  • add_link
  • create_epic
  • get_activity
Connect Claude Code
claude mcp add --transport http methods \  https://methods.example.com/mcp \  --header "Authorization: Bearer mth_…"

Activity · MTH

  • Claude moved MTH-12 from Todo to In Progress
  • Claude commented on MTH-12
  • Olive assigned MTH-21 to Claude
  • Kyle undid a change to MTH-18 priority

Performance

Rust on the server, nothing extra to run

One small binary serves the app, the API and the MCP endpoint. All it needs is PostgreSQL.

Server binary for app, API and MCP
1
Live updates to every open board
~300ms
Redis, queues or workers to run
0

Rust and Actix Web

A compiled, async server on Tokio with sqlx and PostgreSQL. Migrations are embedded and run on start.

Real time without the plumbing

Changes fan out with Postgres NOTIFY and stream to browsers over Server-Sent Events, so live updates work across instances behind a load balancer.

A static front end

The web app is a static export served by the same binary. No Node.js in production, no server rendering, and pages ship CSS only for the components they use.

Security

Single sign-on and sensible defaults

Sign in with the identity provider you already run. Authentik, Keycloak, Okta or any other OpenID Connect provider.

OpenID Connect

Authorization code flow with PKCE and nonce-checked ID tokens. Accounts are matched by issuer and subject, then verified email, and created on first sign-in.

Hashed secrets

Session cookies are HttpOnly and SameSite; only SHA-256 hashes of sessions and bot tokens are stored. Optional passwords use Argon2.

Workspace roles

Owners, admins and members. Records outside your workspaces simply don't exist as far as you can tell.

Safe uploads

Only images and PDFs render inline. Everything else downloads with nosniff, so an uploaded file can't run script on your origin.

Self-host

Up and running in one container

The image exposes a single port for the app, the API and the MCP endpoint.

  1. Bring PostgreSQL

    Methods runs its own migrations on start, so an empty database is all it needs.
  2. Run the image

    Set the database URL and the public URL people use. Add S3 and OIDC settings when you want them.
  3. Invite your team, then your bots

    Create a workspace, then a bot and a token under Settings → Bots & MCP.
docker
docker run -p 8080:8080 \  -e DATABASE_URL=postgres://user:pass@db/methods \  -e PUBLIC_URL=https://methods.example.com \  -e OIDC_ISSUER=https://auth.example.com/ \  -e OIDC_CLIENT_ID=methods \  -v methods-data:/data \  ghcr.io/mellow-technology/methods

Give your team and your agents the same board

Free and open source under the AGPL-3.0. Your data stays on your servers.