Skip to main content
Open source · MIT · Self-hosted

The back-office agents build, and agents run.

A back-office framework for the two people who already work with agents: the developer, who lets Claude Code or Codex write the panel, and the admin, who lets an agent work inside it. Same repo, same database, same permissions.

$npx adminforth create-app

# Postgres · MySQL · SQLite · Mongo

localhost:3000/resource/users
Users1 284 records+ Create
EmailRoleStatus
alice@acme.ioAdminActive
b.novak@acme.ioEditorActive
carol@vendor.coViewerInvited
d.ross@acme.ioEditorSuspended
Two sides

One panel, written with agents and then worked by them.

Developers use agents. So do admins.

Most back-office tools are built for one of the two and leave the other clicking. AdminForth treats both as the normal case, and gives each a first-class surface.

Developers who use agents

Your coding agent already knows this repo

Every generated app ships the files agents look for, and the config is a plain declarative object — so Claude Code, Codex, Gemini or Copilot can add a resource, a column or a plugin without being re-taught the project each session.

  • AGENTS.md
  • CLAUDE.md
  • llms.txt
  • skills/
Read the getting started guide
Admins who use agents

The panel is also a data surface

Turn the same resources into tools an agent can call, so an operator can ask for the data instead of paging through it — and change it without a developer in the loop.

  • Read, filter and write the records your team sees
  • Runs as the user who issued the secret — permissions, validation and hooks apply
  • One secret per agent, revocable on its own
Read the MCP docs
New plugin

MCP Server

Let your agent work the data in your panel — read it, clean it up, write it back. An agent is just another frontend for the same data: the same hooks, the same permissions, the same audit log.

Read the MCP docs
How it works

Three steps, in order. No scaffolding to maintain after.

Declare the resource. Keep the code.

AdminForth reads the schema you already have — nothing is copied or locked into a proprietary format. The panel is an ordinary Node app in your repo, which is also why an agent can edit it and a reviewer can read the diff.

{
  dataSource: 'maindb',
  table: 'users',
  resourceId: 'users',
  columns: [
    { name: 'id', primaryKey: true, showIn: { list: false } },
    { name: 'email', required: true, isUnique: true },
    { name: 'role', enum: [
      { value: 'admin',  label: 'Admin'  },
      { value: 'editor', label: 'Editor' },
    ] },                                // renders as a select
    { name: 'created_at', showIn: { create: false } },
  ],
}
Watch

Six minutes, from an empty folder to a working panel.

See it built once.

An existing database, one command, and the agent taking it from there.

youtube.com · AdminForth overview
In the panel

What ships, and what a plugin adds on top.

What it can do for you.

Every screen below is the stock interface or a plugin you enable with a line of config.

Plugins

29 of them, installed as npm packages. Open protocols where a protocol exists.

The parts you would otherwise write twice.

Each one is a line of config and a package — and each is documented well enough that an agent can install it for you.

For the agent

  • MCP serverYour resources as remote MCP tools, one revocable secret per agentModel Context Protocol
  • AI agentChat inside the panel that searches and edits data, with skills you define
  • Bulk AI flowFill, classify or read images across every selected record
  • Text completeInline completion while an editor types
  • LLM translationTranslate the panel — and your own app — from the same catalogue
  • DashboardsCharts you build by asking the agent for them

Auth & access

  • OAuth2 & SSOGoogle, GitHub, Microsoft, Keycloak, Clerk, Twitch, Facebook, TelegramRFC 6749
  • Two-factor authAuthenticator apps and hardware-backed passkeysRFC 6238 · WebAuthn
  • Login captchareCAPTCHA or Cloudflare Turnstile in front of the login form
  • Email inviteCreate a user without ever knowing their password
  • Password resetReset links signed as tokens, over SES or MailgunRFC 7519
  • Open signupLet people register themselves into a low-privilege role
  • User soft deleteDeactivate an account and keep everything it did

Fields & editing

Data & operations

Free, and staying that way

One command for the developer. One secret for the admin.

$npx adminforth create-app