Describe the app or the agent. The AI builds it.
Anyone in the company, from finance to customer care, describes what they need. Flightroom's AI writes it on a branch of your own Git repositories, starting from Flightroom's templates. Protect the base branch and it goes through review. Then one click deploys it.
We need an agent that checks each supplier invoice against its purchase order and flags the ones that don't match, with a page where finance reviews them.
I propose two components for this domain:
Invoice agent · Backend service
Python & FastAPI template · invoice-agent-be
Invoice review · Web interface
React template · invoice-review-fe
Repositories created from their templates, CI included. First version written:
- app/main.py+48-3
- app/matching.py+112-0
- app/purchase_orders.py+64-0
- README.md+21-2
ai/invoice-agent-20261020-090000from main
From an empty domain to a first version
A domain groups the interfaces and services of one business capability. Start with nothing in it and one request gets you working code.
- 01
Describe it
Open an empty domain, write what the team needs and press Generate.
- 02
Edit the plan
The AI proposes up to 3 web interfaces and 3 backend services, each with a name, a template and a repository. Change the list before anything is created.
- 03
Get real repositories
On confirmation the console creates each repository from its template, CI pipeline included, in your GitHub, GitLab or Azure DevOps.
- 04
Get a first version
The agent writes the first version on top, on a branch per repository. One AI job spans up to 10 repositories, so an API and the screens that call it change together.
Keep improving it
The first version is a start. The people who use the app ask for the next change themselves, on any app or service of the project.
- 01
Ask for the change
Pick any app, service or whole domain and describe the change: a new field, a new rule, a new screen.
- 02
Refine through chat
Keep talking to the agent until it is right. Each answer replaces the previous proposal on the same branch, and you see every file it changed.
- 03
Open a pull request, apply or discard
Hand engineers a pull request to review, apply it to the base branch where that is allowed, or throw it away. Your CI runs as it always does.
Once it is merged, one click deploys it to your Kubernetes.
What an agent is in Flightroom
An agent is an app
It is a service that reasons with a model and calls your systems. The AI writes it like any other service, usually from the Python & FastAPI or the Node.js & Fastify template, and your engineers review it the same way.
Your model, your keys
The agent calls the AI model your team chooses. Its API key is a secret of the service, set per environment, so test and production can use different keys.
Your existing data
Register the databases it should reach (PostgreSQL, MySQL, MariaDB, SQL Server or Oracle) and test the connection from the console. The service declares the variables it needs, and the credentials stay in per-environment secrets.
What teams ask for
The people closest to the problem write the request. Engineers spend their time on review instead of on translating tickets.
Operations
“A page where warehouse leads log late deliveries, with a weekly count per carrier.”
Finance
“An agent that checks each expense claim against the travel policy and flags the ones over the limit before approval.”
HR
“An agent that answers employees' questions on leave and travel from the policy documents we give it.”
Marketing
“An agent that drafts three subject lines for every campaign email, in our tone of voice.”
Sales operations
“A form for discount requests that routes anything above 15% to the regional manager.”
Customer care
“Add the customer's last three orders to the ticket screen, next to the conversation.”
Templates you build on
The AI never starts from a blank page. Every new app begins from a template your engineers can read, with a Docker image, health checks and an OpenAPI description already in place.
Backend services and agents
- Node.js & FastifyTypeScript
- Python & FastAPIPython
- Spring BootJava
- QuarkusJava
Web interfaces
Screens, forms and dashboards in React, Angular or Vue, built and deployed as their own app.
Every template ships an AGENTS.md and a CLAUDE.md, so any coding agent, ours or yours, knows the conventions of a repository from its first commit. Templates are MIT licensed.
The guardrails
Every AI change starts on a branch. Review, branch protection and CI stay where they are: protect the base branch and every AI change goes through review.
A branch of its own
Every proposal is committed to an ai/… branch. The base branch stays untouched until someone acts on it.
Review where you already review
Open a pull request on GitHub or Azure DevOps, or a merge request on GitLab. The request is quoted in the description.
Branch protection holds
Apply pushes straight to the base branch, but never forced. A protected branch refuses it and the console suggests a pull request.
Hands off CI, lockfiles and secrets
The agent cannot change CI configuration or lockfiles, and cannot read files that usually hold credentials, such as .env or private keys.
Bounded requests
At most 20 files and 500 KB written, and 40 model rounds, per request. Token usage is shown for every one.
Roles decide who builds
Project members can ask for changes. Viewers can read the requests but cannot ask for, apply or discard one.
Your CI stays the judge
The agent reads and writes files. It does not install, build or test anything: your pipeline checks every branch it pushes, exactly as it checks a colleague's. Since a pushed branch runs CI with the repository secrets, keep deploy secrets on protected branches. Teams can also write an AI context for each project, domain and service, so the agent follows their conventions.
Bring your own model
Each organization configures the models it is allowed to use, with its own credentials, encrypted at rest when SECRETS_ENCRYPTION_KEY is set. Admins can restrict a project to some of them, or turn AI off for it.
- Claude
- Anthropic API, Azure AI Foundry, AWS Bedrock
- GPT
- Azure OpenAI
- Gemini
- Gemini API
An assistant in the console
Press ⌘J and ask: create environments, check which version runs where, start a deploy. It acts with your permissions, never more.
Anything destructive, such as a deploy, a rollback or a deletion, stops on a confirmation card that names exactly what will change. It runs only when you confirm, and every write it makes is written to the server log.
Use the AI tools you already have
Flightroom runs a remote MCP server. Connect your own client and it can read your projects, manage apps and services, and deploy, with the same rules as the console.
- Claude
- Claude Code
- Cursor
- VS Code
- Gemini CLI
OAuth 2.1 sign-in
Sign in with PKCE, pick the projects and whether the client may change things. A project API key works for clients that cannot do OAuth.
Role checked on every call
Demote a member and their client loses write access on its next request. A viewer's client can only read.
Your agent, our pull request
A coding agent such as Claude Code can get a repository to clone, edit it locally and submit the change. Flightroom pushes it to a new branch and opens the pull request.
On a self-hosted install the MCP server is off until you turn it on.
Set up once, then everyone builds
IT or a platform admin does the first two steps. After that, building is open to every member of the project.
Connect your Git provider
An admin connects GitHub, GitLab or Azure DevOps to the project.
Pick a model
Add Claude, GPT or Gemini to the organization with your own credentials.
Invite the team
Everyone with a member role can describe an app, an agent or a change. Protect the base branch and engineers review what comes back.
Also in Flightroom
Join the newsletter
Product news, new releases and guides on building and shipping apps and AI agents with Flightroom.