# Cadmus > A batteries-included web framework for Rust. Each model (a SeaORM entity) gets a database table, an admin site and a REST API with documentation, with accounts, permissions and migrations built in. Install the `cadmus` command with `cargo install cadmus-cli`; `cadmus mcp` serves these docs and project tools to AI agents over MCP. - Crate: https://crates.io/crates/cadmus - API reference: https://docs.rs/cadmus - Source: https://github.com/arnabgupta-dev/cadmus - All pages in one file: https://arnabgupta-dev.github.io/cadmus/llms-full.txt ## Getting started - [Introduction](https://arnabgupta-dev.github.io/cadmus/docs/introduction.md): What Cadmus is, what you get from it, and how its pieces fit together. - [Getting started](https://arnabgupta-dev.github.io/cadmus/docs/getting-started.md): Install the cadmus command and build a first project, step by step. - [Project layout](https://arnabgupta-dev.github.io/cadmus/docs/project-layout.md): The files cadmus new writes, and what each one is for. ## Guides - [Models](https://arnabgupta-dev.github.io/cadmus/docs/models.md): Describe your data; every model gets a table, admin pages and API endpoints. Field types and ModelOptions. - [The admin site](https://arnabgupta-dev.github.io/cadmus/docs/admin.md): The /admin site - dashboard, lists, search, filters, bulk actions, forms, and changing its look. - [The REST API](https://arnabgupta-dev.github.io/cadmus/docs/rest-api.md): The JSON endpoints every model gets - listing, searching, filtering, sorting, creating, changing, deleting, and errors. - [Migrations](https://arnabgupta-dev.github.io/cadmus/docs/migrations.md): Keep the database's tables in step with the models - makemigrations, migrate, renames, data changes and rolling back. - [Accounts and permissions](https://arnabgupta-dev.github.io/cadmus/docs/accounts.md): Users, groups, superusers and staff, and the view/add/change/delete permissions that apply to the admin and the API. - [Logging in - tokens and API keys](https://arnabgupta-dev.github.io/cadmus/docs/authentication.md): How people and programs authenticate - the admin login, login tokens for apps, and API keys for scripts and services. - [Login methods](https://arnabgupta-dev.github.io/cadmus/docs/login-methods.md): Passwords, login links by e-mail, and logging in with Google, Microsoft, GitHub, Facebook or any OpenID Connect provider. - [Two-factor login and limits](https://arnabgupta-dev.github.io/cadmus/docs/two-factor.md): Codes from a phone app, recovery codes, making two-factor compulsory, and limits on login attempts. - [E-mail](https://arnabgupta-dev.github.io/cadmus/docs/email.md): Sending login links, password resets and invitations, over SMTP or your own mail service. - [Relations](https://arnabgupta-dev.github.io/cadmus/docs/relations.md): Links between models (foreign keys) - generating them, how the admin shows them, and deleting linked records. - [File uploads](https://arnabgupta-dev.github.io/cadmus/docs/file-uploads.md): Storing files on disk or in S3, Azure or Google Cloud - file fields on forms, uploads through the API, and resumable uploads. - [Settings](https://arnabgupta-dev.github.io/cadmus/docs/settings.md): Configuring a project in src/settings.rs - secrets from the environment, checks at start-up, and every setting with its default. - [Your own code](https://arnabgupta-dev.github.io/cadmus/docs/custom-code.md): Adding your own routes next to the generated ones, using the database in them, and returning errors the Cadmus way. - [API documentation](https://arnabgupta-dev.github.io/cadmus/docs/api-docs.md): The interactive documentation every project serves at /api/docs, protecting it, and adding your own routes. - [Databases](https://arnabgupta-dev.github.io/cadmus/docs/databases.md): Choosing SQLite, PostgreSQL or MySQL with one address, and leaving out the drivers you do not use. - [Deploying](https://arnabgupta-dev.github.io/cadmus/docs/deploying.md): Building a release, running it on a server behind HTTPS, and the checklist before going live. ## Building with AI agents - [Building with AI agents](https://arnabgupta-dev.github.io/cadmus/docs/ai-agents.md): Connect Claude Code, Cursor, VS Code or any MCP client to the cadmus MCP server, so an agent can read these docs and build Cadmus apps. ## Reference - [Commands](https://arnabgupta-dev.github.io/cadmus/docs/commands.md): Every command - the cadmus tool, and the management commands each project has. - [Limitations](https://arnabgupta-dev.github.io/cadmus/docs/limitations.md): What Cadmus does not do yet, so you know before you build.