{% extends "base.html" %} {% block title %}Settings{% endblock %} {% block topbar_main %}

Settings

This machine only {% endblock %} {% block content %}

General

Database
{{ db_path }}
Web UI port
{{ port }}
Version
flanner {{ version }}

Changed with flanner web --port or FLANNER_HOME. Shown here so you know where to look.

{# Nothing here is ever pruned, and that is a decision rather than an oversight — so it is stated, with the number it costs. There is no cleanup button on purpose: keeping every version is what makes history and signatures worth anything, and a control that quietly broke lineage would be worse than a figure that grows. #}

Storage

Plan text
{{ storage.plans }}
Signed history
{{ storage.payload }} across {{ storage.artifacts }} artifacts
Total on this machine
{{ storage.total }}

Flanner never prunes. Every version, comment and decision is kept, because a history with holes cannot be verified and a plan you need is usually an old one. Retiring a plan hides it; it does not reclaim space.

Agent integration

MCP server {% if claude.get('registered') %} Registered with Claude Code · ● {{ claude.get('state', 'ready') }} {% else %} Not registered. Run flanner register. {% endif %}
Details
Config file {{ claude.config_path or 'not found' }}
{{ claude.servers or 0 }} servers

Read from the same file flanner claude-info reads, so the CLI and this page cannot disagree. Change it with flanner register.

Appearance

Reading preferences for plan documents — typeface, size and line width — live on the plan page itself, next to the text they change.

Where your data is

Everything is in one SQLite file and the plan directories inside your own repositories. There is no account and nothing is uploaded. Delete {{ db_path }} and flanner forgets it ever ran.

{% endblock %}