Technology
Runs on your computer, answers to you.
For developers evaluating FULI: how it is built, which Skills it brings, how it stores data, and why.
Four local layers
-
Clients
MCP, CLI and HTTP
Any MCP-compatible client can connect; fuli connect writes the generic configuration. Codex, Claude Code, Cursor and OpenCode also have adapters; automatic conversation capture and session wake depend on the adapter.
-
Orchestration
Node console
The CLI, the local management UI and the MCP server. The UI and the Agent tools call the same application services, so business rules exist once.
-
Governance
Python Provider
graph-provider/ is the source of truth and guards space and project scope, sources and confirmation.
-
Storage
Local Neo4j
The graph database keeps knowledge, relationships and history. The Provider and Neo4j listen on loopback only, even in LAN mode.
Every data change in the UI either has a matching Agent tool or is marked as one only you can make on this computer.
Skills installed with FULI
A Skill is an instruction package for the Agent, not a paid edition.
-
capturing-session-knowledgeRecalls the current project's knowledge and applies collaboration preferences; at the end of a task, saves what is worth reusing with its source.
-
operating-fuliInspects and changes projects, knowledge, Agents and reviews through structured tools, not browser automation.
-
grilling-projectReads the repository first, then asks one question at a time to set up or complete a project profile; previews the public boundary before publishing.
-
flreviewWhen you type /flreview, turns the candidates FULI ranked into a knowledge review page made for this run.
-
fuli/fuli start, stop, restart, status: switches FULI for the current session, answered directly by the hook.
Data design
-
Personal space and projects
Data is separated by personal space and divided into projects. Search stays within a space and project scope instead of mixing every project.
-
Entities and relationships
Knowledge is entities (Entity) and relationships (RELATES_TO) in the graph, with their source sessions, scope and confirmation status.
-
Edits write a new version
An edit never overwrites the words: a new version supersedes the old, which keeps its text, sources and confirmation and stays valid until the new one starts. Current answers read only valid versions.
-
A person confirms
Confirmation has three levels: confirmed by a person, confirmed by an Agent, and pending. Agent usage alone reaches Agent-confirmed at most.
-
Format migrations
The graph format has a version. Steps that only add indexes and constraints run automatically; steps that change records wait for your confirmation and record what an undo needs. Older FULI versions refuse a newer format.
-
Derived indexes
Meaning vectors and filled-in aliases and context are indexes: they leave the words alone, create no version, and can be dropped and rebuilt.
-
Deletion
Deleting also clears local copies; restoring an old backup does not bring deleted words back.
Principles
-
Local first
The personal graph stays on your computer by default. Credentials, temporary logs and raw command output stay out of it.
-
You have the final say
AI retrieves, summarizes, warns and executes; people decide. Repetition and similarity are not your confirmation.
-
Query on demand
A session does not start with the whole history: the entry brings preferences and a small recall, and the Agent searches for the rest when it needs it.
-
History apart from the current answer
An old approach may have been right at the time. FULI keeps sources, time and what replaced what; negative feedback lowers rank or triggers review, never silent erasure.
-
Reuse, not volume
Node and transcript counts are not the goal. The goal is confirmed knowledge reused in the right project, so you explain or redo less.