Skip to main content
Glama
dialectforge

FlowState by DialectForge

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FLOWSTATE_DBNoThe database file path. Defaults to platform-specific locations (Windows: %LOCALAPPDATA%\flowstate\flowstate.db, macOS: ~/Library/Application Support/flowstate/flowstate.db, Linux: ~/.local/share/flowstate/flowstate.db).
FLOWSTATE_MODELNoModel name for desktop apps. Used when the app doesn't supply it via the X-FlowState-Model header or tool argument.
FLOWSTATE_TOOLSNoSet to 'core' to list only the 9 core tools to save context. The other tools still work if called.
FLOWSTATE_WORKSPACENoThe machine or workspace name. Defaults to this computer's name.
FLOWSTATE_MEANING_MODELNoThe model for meaning-based search. Default is all-MiniLM-L6-v2.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
start_hereA

CALL THIS FIRST in every conversation about a project. Returns a brief (max 4,000 characters) with the project's hard rules (never break them), any handoff note from the last AI, open todos, open problems, recent changes, recent decisions and key learnings, and opens a FlowState session automatically. Pass project="" (or id). size=quick (short) or deep (longer, up to 12,000) if needed. Unknown project? Call with no arguments, or with folder="", to get the list of projects.

log_workA

Record work as you go (write; project required). kind: decision (a choice made and why), change (something changed), problem (bug or blocker), learning (lesson or gotcha), todo (follow-up). summary: one short line. details: optional. component: optional component name (changes and problems default to 'General'). suggested=true: you are not sure the user wants this recorded, so it goes to the review queue instead of being saved. priority (todos; severity for problems): critical, urgent, normal (default), low. source: user_stated (the user said it), ai_inferred (your conclusion) or from_code (read in code or commits). Never include secrets (writes containing keys, tokens or passwords are refused).

review_listA

List items waiting in the review queue (auto-captured session summaries and records logged with suggested=true). Read-only. Show them to the user; approving or rejecting is the user's decision.

review_approveA

Approve a review item so it becomes a normal FlowState record. To edit then approve, pass the corrected summary/details (or priority/category/component). ONLY call this when the user has explicitly told you, in this chat, to approve or reject this specific item. Never decide on your own initiative, and never approve your own suggestions unless the user explicitly says so. user_request must quote the user's words. Write: requires project="".

review_rejectA

Reject a review item. It is kept, marked rejected, with the user's reason (nothing is deleted). ONLY call this when the user has explicitly told you, in this chat, to approve or reject this specific item. Never decide on your own initiative, and never approve your own suggestions unless the user explicitly says so. user_request must quote the user's words. Write: requires project="".

linkA

Link things across projects (write for add/remove; project required). Use when projects share something, e.g. several apps use one protocol: link(action="add", project="App A", link_type="uses", target_project="Owner", target_component="Wire Protocol"). Source is the project, or component="", or item_type+item_id (decision, change, learning, problem, todo). Target: target_project (+ target_component), target_type+target_id, or url (a GitHub/Linear link to keep on a record). link_type: uses, depends_on, part_of, same_as (also supersedes, subtask_of, blocks). Changes logged on a shared component alert every project linked to it (an update todo + a note in its brief). FlowState only alerts; it does not change other apps' code. remove: link_id (or the add fields). list: links of the project or of one item.

review_modeA

Read or change the review mode: which new records wait in the review queue for the user's OK. Modes: off (nothing waits), auto_only (default: only auto-captured items), types (also the listed kinds), everything. action=get is read-only. action=set ONLY when the user has explicitly asked you, in this chat, to change the review mode; never change it on your own initiative or to get your writes saved. user_request must quote the user's words; every change is logged with them. project=... sets an override for one project (clear=true removes it); no project = the whole install.

historyA

Edit history of FlowState records, and undo. action=list (read): recent edits and deletes in a project, or of one record (record_type + record_id), with old and new values. action=undo (write; project required): put back the last change to that record (a deleted record comes back); recorded too, so undoing again redoes it. Refused if the record changed again since. New records are not undone here (set them done/cancelled). action=who (read): who did what, newest first, across projects or one project: app, model, machine and how the app was identified, for edits, review decisions, links, handoffs, rules and new records; filters by_app, by_model, by_machine, since, until (local time, e.g. 2026-10-17 or 2026-10-17 14:30), page.

cleanup_suggestA

Find likely duplicates, stale todos and records filed in the wrong project, and put them in the review queue as suggestions (write; project required; additive: nothing is moved, closed or deleted). The user approves or rejects each one; approving applies only that suggestion and it can be undone with history. Suggestions the user rejected are not repeated. kinds: any of duplicate, stale, misfiled (default all).

import_memoryA

Bring memories or notes into a project's REVIEW QUEUE (write; project required; nothing is saved as a record until the user approves). format=memory (default): a Claude or ChatGPT memory export or copy, as text/markdown (one per line) or JSON. format=flowstate_markdown: a file made by flowstate export-md; new lines and edited lines become review items. Pass the file's contents as text. Lines that look like secrets are skipped, not stored.

rulesA

A project's HARD RULES: things never to do in it (e.g. "Never push to main"). They are shown first in every start_here brief, in full. action=list (read). action=add (write; project required): rule = one short sentence (max 300 characters; 2,000 per project); add one when the user states a rule. action=remove (write): rule_id, ONLY when the user asks you in this chat; user_request must quote their words.

handoffA

Handoff notes between AIs. Stopping mid-task (out of time, context or tokens, or the user ends the chat)? action=leave (write; project required) with where_i_was (what was being done and its state) and next_step. The next AI sees it first in start_here. When you continue from a note, action=pickup with handoff_id so it stops showing. action=list (read).

verifyA

Keep facts current. action=stale (read): facts (paths, ports, hosts, URLs, config) in a project not checked for 60+ days; check them. action=mark (write): you confirmed a record still holds (record_type + record_id; optional source). action=source (write): set where a record came from: user_stated, ai_inferred or from_code. If a fact changed, log the change instead.

askA

Ask FlowState a question in plain words (read-only), e.g. "which port does the LAN server use?". Returns a short answer quoted from the best-matching records, with their ids (type #id), plus matching hard rules and handoff notes. Local only (meaning search if a local model is installed, keywords otherwise). If nothing matches it says so; it never guesses. project optional (default: all projects).

list_projectsB

List all projects with their status.

create_projectC

Create a new project.

update_projectB

Update project details. Write: requires project="" (or project_id).

get_contextB

Get project context. Use lean=True (default) for minimal tokens at session start. Use lean=False for full details when needed.

create_componentA

Create a component within a project. Write: requires project="" (or project_id).

list_componentsC

List components in a project.

update_componentB

Update a component. Write: requires project="" (or project_id).

log_learningB

Capture an insight or learning. This is your memory - use it! Write: requires project="" (or project_id).

get_learningsC

Get learnings. Use compact=True to save tokens.

log_changeB

Log a change to a component. Write: requires project="" (or project_id).

get_recent_changesC

Get recent changes. Use compact=True to save tokens.

searchA

Search todos, decisions, changes, learnings, problems and solutions. Matches words (and word endings); also by meaning when a local model is installed (the reply's mode says which was used).

problemC

Manage problems. Actions: log, list, solve, get_tree Write: requires project="" (or project_id).

attemptC

Manage solution attempts. Actions: log, outcome Write: requires project="" (or project_id).

todoA

Manage todos. Actions: add, update, list, next (what to do next: open, unblocked, highest priority), block / unblock (todo_id waits on blocked_by todos or blocked_by_problem). add takes parent_todo_id for a subtask. Priority: critical, urgent, normal (default), low (older names high and medium also work). list filters by priority or min_priority and sorts by priority (default), due or newest. Write: requires project="" (or project_id).

sessionC

Manage sessions. Actions: start, end, current, log_conversation, list_conversations, list_sessions Write: requires project="" (or project_id).

fileB

Manage file attachments. Actions: attach, list, remove, search Write: requires project="" (or project_id).

gitC

Git operations. Actions: init, status, sync, set_remote, clone, history

variableB

Manage project variables (servers, credentials, config). Actions: create, list, update, delete Write: requires project="" (or project_id).

methodB

Manage project methods (auth flows, deployment steps, patterns). Actions: create, list, update, delete Write: requires project="" (or project_id).

self_improveC

Manage Claude's learned skills and session state. Actions: learn_skill, get_skills, confirm_skill, save_state, get_state, log_metric, get_metrics Write: requires project="" (or project_id).

Prompts

Interactive templates invoked by user choice

NameDescription
flowstate-startLoad FlowState project memory and work with it for this conversation.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 35 tools

Disambiguation3/5

Several tools overlap meaningfully: log_work(kind=change/learning/problem/todo) duplicates log_change, log_learning, problem, and todo; ask/search/get_learnings/get_recent_changes all retrieve records; and start_here vs get_context both return session context. Descriptions do help an agent pick correctly, but boundaries are genuinely blurred in the write path.

Naming Consistency3/5

Two clear conventions coexist: verb_noun tools (create_project, log_learning, review_approve, get_recent_changes) and bare resource nouns that dispatch via an action parameter (todo, session, file, git, variable, method, rules, problem). Each family is internally predictable, but the split is roughly half-and-half rather than a minor deviation.

Tool Count2/5

35 tools is above the 25+ heavy threshold for a project-memory server. While many consolidate multiple operations behind an action parameter, the surface is still large and the count alone makes selection cost high.

Completeness4/5

Coverage is broad and coherent: projects, components, learnings, changes, problems, attempts, todos, sessions, files, git, variables, methods, links, review workflow, rules, history/undo, import, and cleanup. The main gap is explicit deletion for projects, components, learnings, and changes (partially mitigated by history undo), which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive