Facts as executable data
Named facts are program data, not a separate ORM-shaped representation. The runtime can query, filter and transform them directly.
AI-native logic programming language
Felidae is a working functional logic language for .fx files, with a native C++ interpreter, fact/query runtime, native modules, AST diagnostics and editor tooling. Higher-level agent abstractions remain an evolving research direction.
.fxNative C++ runtimeInteger parser“AI-native” describes the engineering direction. This page deliberately separates current compiler/runtime capabilities from agent, memory, policy and tool-orchestration research.
Person(name: "Alice", role: "Engineer")
Person(name: "Bob", role: "Manager")
main() =>
return lambda(Person, p => p.role == "Engineer")Real language, current syntax
The old landing page treated executable examples as design sketches. The current repository has a real parser/runtime and a v2 reference corpus, so the product page now uses current newline-terminated .fx syntax and links back to its source basis.
Current v2 syntax uses newline-terminated statements. Facts and methods live in the same .fx source model.
Current .fx syntax. New landing-page examples follow the v2 newline-terminated grammar rather than the legacy dot-terminated examples directory.
Person(name: "Alice", role: "Engineer")
Person(name: "Bob", role: "Manager")
main() =>
return lambda(Person, p => p.role == "Engineer")Programming model
Felidae treats named facts as structured program data. Methods and explicit queries operate directly on that model, which is useful when software benefits from keeping knowledge and transformations close together. It is not a claim that Felidae replaces external databases in general.
Common layered application
Felidae fact-centric path
The narrower value proposition: Felidae gives programs a lightweight fact/query model when structured knowledge, explicit transformations and inspectable logic matter more than hiding those relationships behind framework glue.
Why Felidae?
These are implementation-backed capabilities or, where noted, source-backed capabilities still moving through build integration.
Named facts are program data, not a separate ORM-shaped representation. The runtime can query, filter and transform them directly.
Methods, immutable := bindings, conditions, lambdas, queries and returns keep data movement visible in the program.
The current native build produces the Felidae interpreter and debugger from a C++17 CMake graph with SentencePiece-backed parsing.
felidae_debug performs AST analysis, emits structured diagnostics and exposes a JSON-RPC LSP surface for editor integrations.
Celidae has dedicated C++ visualization and analytics source with nine structural/analytical views; its current top-level native build wiring is still being reconciled with the new CMake parser graph.
Runtime and analysis
Felidae keeps execution, AST diagnostics and visualization as distinct responsibilities. That separation matters: the debugger does not execute programs, and Celidae analysis should not be confused with runtime behavior.
felidaeThe primary runtime. It loads .fx programs, executes main, runs external fact queries and provides a REPL and runtime metrics.
felidae_debugA separate diagnostic target for structured checks, symbol/operator metadata and JSON-RPC editor diagnostics. It does not execute queries.
celidaeA separate C++ visualization/analysis codebase that turns declarations and literal fact values into self-contained interactive HTML views.
The Celidae source and acceptance suite exist, but the current top-level CMake graph does not expose a Celidae executable target. The page therefore presents it as in development rather than a guaranteed build artifact.
Celidae
Celidae’s C++ source defines four structural views and five analytical views. It builds self-contained interactive HTML and deliberately avoids executing main, methods, queries or native libraries. The current site labels the tool in development because its top-level CMake target wiring lags the new parser build graph.
Fact types, fields and inferred field shapes.
Illustrative UI only. It represents the implemented view category and does not invent analytical results. Celidae itself generates self-contained interactive HTML from the program being inspected.
Developer tooling
The repository contains richer VS Code and IntelliJ integrations plus a growing set of lightweight editor modes and a Tree-sitter grammar scaffold.
Syntax highlighting, snippets, import navigation, hovers, CodeLens actions, debugger integration and felidae_debug-backed Problems diagnostics are implemented in the repository extension.
The JetBrains plugin registers .fx files, highlights syntax, uses felidae_debug --check-json and provides run/check/visualize actions.
felidae_debug exposes a JSON-RPC LSP mode over stdio plus symbol, library, builtin and operator metadata surfaces.
A dedicated tree-sitter-felidae grammar scaffold exists for editor/navigation work; it is not yet upstream GitHub Linguist support.
Repository integrations exist for Emacs, Vim/Neovim, Nano, Notepad++, Sublime Text and Zed, with capability depth varying by editor.
Native modules
Felidae’s CMake graph builds native shared-library modules for capabilities that do not belong inside the core interpreter. Typed .fx declarations remain the language-facing contract.
CSV and other structured-data boundaries can live behind typed module calls.
The native build graph includes database, set, group, fact and fact-analysis modules.
HTTP is implemented as a native shared-library target.
Process/platform access is exposed through a native module boundary.
WordNet, plotting and GTK/Qt targets are present in the native CMake graph.
Use cases
The strongest use cases follow directly from what the runtime and repository already implement. AI-native software is shown separately as a research direction, not as a completed agent platform.
AI-native direction
Xnovity is evolving Felidae toward intelligent software that can represent knowledge, reasoning, tools, policies and execution more explicitly. The key credibility rule is simple: current runtime features stay separate from research abstractions.
Research syntax such as hypothetical agent/memory/policy blocks is intentionally absent from the primary code path until it is supported by the current parser/runtime.
Try Felidae
The commands below follow the current native build wrappers and runtime CLI. They use v2_examples rather than the legacy dot-terminated examples directory.
./build.sh./build/felidae v2_examples/selective_fact_query.fx./build/felidae v2_examples/selective_fact_query.fx '? Candidate(region: "north", id: Id)'./build/felidae_debug v2_examples/selective_fact_query.fx --check-json.\build.cmdbuild\felidae.exe v2_examples\selective_fact_query.fxbuild\felidae.exe v2_examples\selective_fact_query.fx '? Candidate(region: "north", id: Id)'build\felidae_debug.exe v2_examples\selective_fact_query.fx --check-jsonPlatform status
The current build wrappers support the native CMake graph. Older documentation lists broader cross targets, but the newest wrappers explicitly reject non-native targets until proper SentencePiece-aware CMake toolchains or presets exist.
Native CMake build through ./build.sh.
Native CMake build through build.cmd/build.ps1.
The native shell/CMake path is intended to be portable to AppleClang/macOS, but this redesign did not verify a current macOS artifact.
The current build wrappers reject non-native targets and require a dedicated CMake toolchain or preset.
Older repository documentation describes WASM tooling, but the current build wrappers reject non-native targets during the SentencePiece/CMake migration.
Public source
The active Felidae repository exposes the runtime, current v2 examples, native modules, debugger, Celidae source, tests, quality scripts and editor integrations. The page links directly to those artifacts instead of asking developers to trust marketing copy.
src/Runtime + parserv2_examples/Current syntaxnative_modules/C++ modulestests/Regression testsscripts/Quality tooling*-extension/Editor toolingLicensing note: the repository is public, but a root project license was not visible in the reviewed repository state. This redesign therefore says “public source” rather than making a stronger legal open-source claim. Adding a project LICENSE should be a repository follow-up before OSI promotion.
Project status
The page now separates what the current native build demonstrably provides, what is still being integrated, and what remains research. This is not an apology; it lets technical visitors understand the project quickly.
Architecture
The architecture diagram has been updated from the older lexer story to the current SentencePiece/integer-parser implementation. Analysis products branch after parsing rather than being presented as modes of the interpreter.
A different programming model
Felidae is most interesting when the program benefits from explicit structured knowledge and logic. The comparison below describes architectural tendencies, not a scorecard against Python, Rust, C++ or TypeScript.
Quick answers
Felidae is a functional logic programming language for .fx files. Its current runtime is a native C++ interpreter built around a SentencePiece-backed integer parser, AST execution, fact/query runtime and native-module boundary.
No. The interpreter, parser, runtime, debugger/LSP, native modules, current v2 examples and editor integrations are implementation-backed. Agent-oriented abstractions and richer AI workflow concepts are still research directions.
It describes the direction in which the language is being developed: intelligent software with explicit knowledge, reasoning and tool boundaries. It is not a claim that a production-ready autonomous-agent DSL exists today.
The newest native build uses SentencePiece-backed integer token entries and IntegerParser. Older README wording and some legacy examples still reference the earlier lexer/dot-terminated grammar and should not be used as the current landing-page model.
Use v2_examples as the current reference: statements are newline-terminated, while examples/ contains older dot-terminated programs.
It is a separate C++ AST-analysis target. It emits structured diagnostics, supports JSON-RPC LSP mode and exposes symbols, builtins, libraries and operator metadata for editor integrations.
Celidae is a separate visualization and analysis codebase. It parses declarations and literal fact values into self-contained interactive HTML views and deliberately does not execute main, queries or native libraries.
The Celidae source and acceptance tests are present, but the current top-level CMake file does not define a celidae target. Until that wiring is restored, this site labels Celidae build integration as in progress.
Met Felidae at Open Source India?
Start with current v2 examples, follow the native runtime, inspect the debugger/LSP source, and open an issue if you find a gap. Felidae is early in its journey and the useful contribution right now is technical scrutiny.