FlameRobin is a software package for administration of Firebird DBMS. It is developed by:
- Milan Babuskov
- Nando Dessena
- Michael Hieke
- Gregory Sapunkov
- Bart Bakker
- Marius Popa
The following people also made a significant non-coding contributions:
- Alex Stanciu
- Barbara Del Vecchio
FlameRobin is a lightweight, cross-platform database administration tool for the Firebird DBMS (supporting Firebird 2.5, 3.0, 4.0, 5.0, and 6.0+).
- SQL Schemas & Metadata Management: Native support for Firebird 6.0+ SQL Schemas (
CREATE,ALTER,DROP SCHEMA) and full schema qualification refactoring. - Visual JSON & Document Field Editor: Interactive visual JSON tree viewer, pretty-printer, syntax validator, and Firebird 6 native JSON expression builder (
JSON_VALUE,JSON_QUERY,JSON_EXISTS). - Temporal Tables & Point-In-Time Querying: First-class GUI display for system-versioned temporal tables (
PERIOD FOR SYSTEM_TIME) and automated historical query generator (FOR SYSTEM_TIME AS OF/BETWEEN). - "Script as ..." Context Menu Actions: One-click DDL/DML code generators (
Script as SELECT FIRST 100,INSERT,UPDATE,DELETE,MERGE,CREATE,ALTER,DROP). - Multi-Format Result Exports: Export data grid query results to CSV, JSON, TSV, Excel (XLSX), HTML, and Markdown tables.
- Query Plan Visualizer: Interactive execution plan viewer rendering Firebird
PLANandEXPLAINstatement tree structures with index usage vs. full-table scan warnings. - SQL:2023 Standard Compliance: Full editor and metadata support for
DECFLOAT,INT128,ROWdata types, numeric literals with underscores (e.g.1_000_000), non-decimal literals (0x,0b,0o), and column-levelCOLLATEdefinitions.
FlameRobin provides native data grid rendering, inspection, and similarity query helpers for high-dimensional vector embeddings (VECTOR):
- Vector Data Viewer & Inspector (
VectorDataEditorDialog): Inspect dimensions, L2 norms, individual float elements, and perform interactive L2 normalization. - Similarity Search Query Generator: Automatically generate similarity queries using Firebird vector functions (
COSINE_DISTANCE,L2_DISTANCE,INNER_PRODUCT,L1_DISTANCE). fbvectorInstallation Wizard (VectorInstallerWizard): Built-in automated wizard to verify Firebird engine vector capabilities and auto-deploy/register thefbvectorUDF extension package directly to connected Firebird databases.
- Live Session & Transaction Monitor: Real-time monitoring window (
SessionMonitorFrame) displaying active database attachments (MON$ATTACHMENTS), executing statements (MON$STATEMENTS), and running transactions (MON$TRANSACTIONS) with Cancel Query and Disconnect Attachment capabilities. - Memory Pools & Diagnostics: Visual diagnostic graphs and tabular views for Firebird server memory pools (
MON$POOLS) and memory usage statistics (MON$MEMORY_USAGEallocations, used bytes, and max limits per stat group). - Connection Pool Monitoring: Track active vs. idle attachments, connection limits, and request wait queues across database sessions.
- Compiled Statement Cache: Inspect statement compilation metrics (
MON$COMPILED_STATEMENTS), cache hits, misses, and hit ratio percentages.
FlameRobin features an embedded Model Context Protocol (MCP) Server enabling direct integration with AI assistants (such as Claude Desktop, Gemini CLI, Cursor, and custom agentic coding assistants):
- How to start the MCP server:
flamerobin --mcp
- Supported MCP Tools:
list_databases: List registered Firebird databases and connection details.get_schema: Retrieve complete metadata schemas for tables, views, procedures, and indices.execute_query: Run standard read-only or DML SQL statements.get_metadata_ddl: Retrieve full DDL script representations of any metadata object.get_performance_stats: Fetch session metrics, transaction counts, and page buffer allocations.get_memory_diagnostics: Inspect Firebird memory pools (MON$POOLS), memory usage stats (MON$MEMORY_USAGE), and connection pool states.list_active_sessions: Inspect connected users, running queries, and attachment metadata viaMON$system tables.cancel_statement: Send cancellation signals to long-running SQL statement IDs.recalculate_index_stats: Trigger index selectivity recalculations (SET STATISTICS INDEX).explain_query: Retrieve execution plans for query optimization.compare_schemas: Automated schema diffing and DDL migration script generation.
For full MCP integration details, see docs/mcp_howto.md and .agents/AGENTS.md.
| Platform | Status |
|---|---|
| Windows | |
| Debian/Linux | |
| macOS | |
| Fedora Flatpak |
Notice: Now you can download latest Windows snapshot builds directly from the Build Flamerobin for Windows Action
For detailed build instructions for all supported platforms (Windows, Linux, macOS), see the BUILD.md file.
Notice: FlameRobin is built using modern C++20 and uses the modern fb-cpp database library abstraction layer.
- Project Roadmap - Milestone tracking across Firebird 4.0, 5.0, 6.0, and IDE features.
- Security Roadmap - Security hardening and supply-chain safety improvements.
- Database Abstraction Layer (DAL) & fb-cpp Architecture - Detailed DAL design documentation.
- MCP How-To Guide - Model Context Protocol integration instructions.
For producing a signed, notarized FlameRobin.app distributable to other
Macs (build + bundle dylibs + sign + notarize + staple + zip in one step),
see dist/macos/README.md. One-shot release:
dist/macos/release.shDeveloper-focused documentation can be found in the devdocs folder:
FlameRobin code is licensed under the MIT license. A copy of the license can be found in the LICENSE file.
Part of code covering IBPP library is licensed under IBPP license. A copy of IBPP license can be found in src/ibpp folder.
FlameRobin uses a patched version of the fb-cpp library. These patches are necessary to support delayed transaction starts and transaction-less statement preparation, which are critical for FlameRobin's Data Access Layer (DAL).
The library is built using a custom vcpkg port located in ports/fb-cpp/. The patches are applied automatically during the vcpkg build process from ports/fb-cpp/fb-cpp-flamerobin.patch. This ensures that the upstream submodule in src/fb-cpp/ remains clean.
If you need to update the patches (e.g., after updating the submodule):
- Use the synchronization script to generate a new patch:
./utils/sync-fbcpp.sh
- The script will now automatically update
ports/fb-cpp/fb-cpp-flamerobin.patch. - Verify that the project still compiles and then commit the changes.