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.
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/
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
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 docsThree 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 } },
],
}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.
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.


OAuth2/OpenID SSO Plugin - one click login
RFC 6749 SSO plugin with premade Google, Github, Facebook, Keycloak, Microsoft or any custom OAuth2 adapter
Learn how
2FA Plugin - secure your admin panel
RFC 6238-Compliant TOTP-Based & WebAuthn PassKeys 2FA will add additional security layer (login and preferred actions)
Learn how
Branding and theming
Upload your logo, change colors, update titles, make the look to match your brand
Learn how
Custom Pages and Dashboards
Create your own pages and dashboards with Vue3 components. Add any additional npm packages and extend your admin panel as you like
Learn how

LLM-based Translation Plugin - translate your admin and External apps
Use LLMs to translate any external apps (Mobile, Nuxt, etc.) OR/AND admin panel with minimal effort. Any language supported
Learn how
Audit log Plugin - know who did what
Attach Audit log plugin with couple of lines, create table for logs and track full history of any data changes
Learn how
AI autocomplete Plugin - write with LLMs
Provide your LLM API key to autocomplete plugin and AI will help you to write your content using record context
Learn how
Dark mode out of the box
Dark mode is enabled by default, create your own components in Tailwind-way and it will work with no additional friction
Learn how
Upload Plugin - upload files
Upload files to Amazon S3 with instantiating plugin and providing your S3 credentials
Learn how
Filters to query your data
AdminForth provides basic filters out of the box and allows you to create your own
Learn how
Rich Editor Plugin - WYSIWYG
Attach Rich Editor plugin to your text fields and get WYSIWYG editor for your content
Learn how
List in-place edit Plugin for quick edit
Edit some oftenly used fields in list directly without opening edit page. Decide which fields to be editable in list view
Learn how
Inline create Plugin for quick create
For tables with small fields number which should be created massively, use inline create plugin to create records directly in list view
Learn how
Import/Export CSV Plugin
Export tables to CSV and import from CSV with one click. Move data between environments easily
Learn how
Bulk AI Plugin - generate data for your resources
Use LLMs to fill records with generated data or images. For example, generate product descriptions based on product name and image or generate products images
Learn how
Quick Filters Plugin - filter your data quickly
Use quick filters to filter your data efficiently. Create custom filters and apply them with a single click
Learn how
Background Jobs Plugin - manage your background tasks
Use background jobs to handle long-running tasks efficiently. Schedule, monitor, and manage your background processes with ease even after server restarts
Learn how
Agent Plugin - give AI any task and let it handle it
Provides an internal agent that can perform various tasks based on natural language instructions. Connect it to your data and let it help you with content generation, data management, or any custom use case you can think of
Learn how
MCP Server Plugin - plug your admin into coding agents
Expose AdminForth resources and actions as remote MCP tools for Claude Code, OpenAI Codex, Gemini CLI and any other MCP client. Every call runs as the AdminForth user who created the auth secret, so your resource permissions, validation and hooks still apply
Learn how
Dashboard Plugin - creare custom dashboards from web interface
Provides a customizable dashboard plugin that allows you to create and manage dashboards for your data. Connect it to your resources and visualize your data in a meaningful way
Learn how29 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
- Rich editorQuill WYSIWYG on any text column
- MarkdownAuthor and preview Markdown, stored as Markdown
- JSON formA real form for a JSON column, generated from your schemaJSON Schema
- UploadsS3, S3-compatible or local storage under your own keysS3 API
- Inline createAdd a row without leaving the list
- List in-place editEdit cells where you read them
- Clone rowDuplicate a record into a prefilled form
- Many-to-manyLink tables managed as one ordinary field
- Foreign inline listRelated rows as a table inside the show page
- Foreign inline showThe linked record itself, expanded in place
Data & operations
- Import / exportCSV and XLSX in and out, on any resourceRFC 4180
- Background jobsDurable work that resumes after a restart
- Audit logEvery change, by whom, from where
- Quick filtersPreset filters and search pinned to the list
- Auto removeRetention rules by age or by row count
- Universal searchLegacy multi-column search — prefer Quick filters
One command for the developer. One secret for the admin.
$npx adminforth create-app


