Feature status
Mend is under active development. This page describes the current repository, not a promise about a
published release. Run mend version and mend doctor, and check your installed versions before
following a guide.
Implemented in the current repository
Section titled “Implemented in the current repository”| Area | Current behavior |
|---|---|
| Project store | Clone network Git URLs into a bare repository owned by Mend; local paths and file:// sources are rejected |
| Worktrees | Durable named checkouts; sessions join by name, several live at once |
| Agents | Launch Codex, Claude Code, opencode, pi, and arbitrary commands; the server owns one model list every client picks from (mend models); a Claude Code, Codex or pi agent run by hand inside a session’s shell or editor terminal is observed as its own process, within about half a minute and ended five minutes after its last write (not opencode) |
| Session processes | Run terminal (agent-pty) and conversation (agent-protocol, Claude Code and Codex) agents, shells, and Services in one session workspace |
| Captured session store | The default store: workspaces work on their own disk and capture their work to an S3-compatible bucket (Garage in the Docker install), with Postgres holding the pointers; nothing from the host is bind-mounted into a workspace |
| Reattachment | Detach and replay terminal output from the CLI, web, VS Code, and mobile clients |
| Workspace images | Managed Arch, Ubuntu, Fedora, and Nix families plus custom OCI bases |
| Project environment | Plaintext configuration, encrypted write-only secrets, .env import; projects inherit their organization’s defaults, which inherit the instance’s |
| Cluster bindings | Declared per project; resolved into workspace environment at each cluster launch |
| Identity | Per-user Claude, Codex, and GitHub connected accounts; pi and opencode run on the Codex (ChatGPT) login; mend connect claude makes a Claude login of Mend’s own, and --use-my-login shares the machine’s instead |
| Dotfiles | Repository-backed setup and home-file snapshots per user |
| Secret files | Per-user files such as ~/.aws/credentials or a kubeconfig, encrypted at rest, written into every session the person owns before the agent starts, never captured (mend secrets) |
| Git author | Per-user name and email for the agent’s commits (mend git-author), defaulting to the registered name and email |
| Skills | Per-user and per-project skill libraries, uploaded with mend skills push and delivered to sessions at launch; Claude Code plugins the settings enable are installed before Claude starts |
| Agent memory | Claude Code and Codex memory kept per person per project and carried into each session the person starts; mend memory import brings a checkout’s memory from this machine; CLI only |
| pi profile | mend connect pi sends a person’s pi extensions, settings and mcp.json; every pi session they start receives it |
| Extra inputs | Organization references mounted read-only at /workspace/ref/<name>, and organization folders a project selects at /workspace/home/<name>; captured workspaces receive both as copies; mend repo add puts a worktree of another project of the store at /workspace/repos/<name> in a running session, saved with the main repository and not yet reviewable on its own |
| Services | Explicit supervision, raw TCP/UDP host forwards, authenticated client tunnels; attached terminals and the dashboard tunnel a remote session’s --http/--https Services automatically |
| Hot sessions | Standby executors keyed by launch-input fingerprints, bound to a fresh worktree at claim |
| Automatic install | Per-project switch, on by default; the command is detected from the lockfile unless a custom one is set; Mend runs it when a workspace has no tree for its platform and to fill the shared cache standbys read |
| Git access | A Mend key per user, added to the user’s Git account or as a deploy key; SSH-agent bridge; workspace transport shim |
| Organizations and tenancy | One organization per instance (MEND_TENANCY=single); owners and members; single-use invitations, with registration closed after the first account; private and shared projects; shared control of a session; an audit log; an operator role for the instance |
| Exposure | MEND_EXPOSURE (loopback, private by default, public); the public exposure gate report (mend operator exposure), with public refused while an observable item is open; single-use upgrade tickets for sockets and the terminal embed |
| Budgets | Limits on request bodies, request rates, live sessions, launches, bundles and open connections per client, account and organization; a budget refuses new work and never stops running work |
| Remote access | Browser access, device pairing, bearer revocation; advertised and pairing URLs come only from the server’s configured origins |
| Change review | Worktree-versus-base diffs, checkpoints and slices between them, comments sent back to the session, descriptions, tours, and suggestions from Mend reading the change |
| Landing | mend land and the web push a change to origin and open or update its GitHub pull request; automatic landing after a completed turn; a pull request the agent opens is recorded when its turn ends, and pull requests opened outside Mend are adopted; never merges, never force-pushes |
| Slack | An organization’s own Slack app over Socket Mode; explicit Slack links; @mend starts or follows up a session; thread text and screenshots reach the session; sessions report to their Slack thread |
| Kubernetes | Helm chart 0.3.0: an API tier and a stateless web tier, the capture store in an S3-compatible bucket, an opt-in Ingress to the web tier with TLS, a network session channel, optional npm and Docker mirrors, and cluster workspaces via the Sealant chart; per-person workspaces are unavailable there (sessions in a worktree share one home), and the cloud metadata block does not apply |
| Self-hosted server | mend server setup (guided on a terminal) runs the Mend application, Postgres, Garage, an npm mirror and a Docker Hub mirror on local Docker, with an optional Caddy edge (--edge); status, logs, start, stop, restart, explicit upgrade --version with a private pre-migration database dump (the newest two kept), and mend uninstall |
| Diagnostics | mend doctor checklist; mend doctor --bundle writes one redacted archive for a bug report |
| Per-person workspaces | On by default (MEND_HARNESS_LAYOUT=shared opts out): each person runs as their own Linux user, on their own logins, with passwordless sudo for everyone, so it is not isolation between people; see Per-person workspaces |
| Scripts | mend run prints the command’s output and exits with its code; mend logs, mend wait, and mend service run --wait; --json on mend run, mend projects and mend service list |
| Cloud metadata block | Workspaces on Docker cannot reach 169.254.169.254 or fd00:ec2::254; see Known issues |
| VS Code extension | Mend by Sealant (sealant-sh.mend) on the Visual Studio Marketplace and Open VSX: browser sign-in, the session view and terminal, review, and Remote-SSH into workspaces; the version follows the Mend minor it needs |
| t3code gateway | Opt-in (mend server setup --t3-gateway): t3code’s clients pair with Mend and drive its projects and sessions as threads; see t3code |
| Desktop app | Source in apps/desktop; build it from source. It is not part of the 0.36 release and has no published build |
Some implemented paths still need release-level acceptance tests. The operational guides state known boundaries where that matters.
Planned or incomplete
Section titled “Planned or incomplete”| Area | Status |
|---|---|
| Context items and packs | Planned; no public library or selection workflow |
| Immutable context snapshots | Schema exists, but session provisioning does not attach one |
| Editable handoffs | Planned |
| Multi tenancy | MEND_TENANCY=multi refuses to start until every item of the multi mode gate passes; mend operator gate lists them |
| Public exposure | MEND_EXPOSURE=public starts only when every item the server can observe is closed. The gate’s last items (Sealant, its registry and the database answering nothing from the Internet; the edge’s certificate; an independent security reassessment of the release) are the operator’s to verify |
| TLS edge | A Caddy overlay (deploy/docker/compose.edge.yaml) that mend server setup --edge <host> installs and every upgrade keeps, or that a Compose project you run yourself applies by hand; it obtained a certificate for alpha.mend.run on 2026-10-10 |
| Published native mobile app | Source exists; no supported distribution path |
| Scoped device permissions | Planned; current paired tokens have normal authenticated access |
| Automatic listener exposure | Not planned; Services remain explicit |
| Backup and restore | mend server upgrade saves a private pg_dumpall dump before activating a target; restore is a manual operator procedure, and volume backups are yours to take |
| Rollback | Downgrades are refused; once a target’s migrations may have run there is no automatic rollback or database restore |
| macOS and installed VS Code | Partly checked by hand: a MacBook with OrbStack ran setup, sessions, Remote-SSH and uninstall on a release candidate, and VS Code Remote-SSH was driven end to end on Linux and through an edge; Docker Desktop is not checked. See Mac mini and VS Code |
| Automatic merge decisions | Explicitly outside the product model; Mend never merges |
Canonical sources
Section titled “Canonical sources”MEND-AGENT-WORKBENCH-PLAN.mdowns product direction and decisions.PLATFORM-FEEDBACK.mdowns gaps between Mend and the public Sealant SDK.- The implementation and its tests determine whether a current command or UI path exists.
A plan milestone is not release status. A platform feature marked implemented at its source is not available to Mend until a released SDK is installed and Mend adopts it.