Skip to main content

FlowGraph — local-first knowledge-graph canvas + AI planner, run securely on your own machine.

Project description

FlowGraph — local server (flowgraphapp)

Run FlowGraph — the local-first knowledge-graph canvas + AI planner — on your own machine. Same app as flow-graph.com, served from a hardened localhost server; your data stays in your browser, and (optionally) your AI key stays in your OS keychain instead of the browser.

Install

From PyPI:

python3 -m pip install flowgraphapp      # or, isolated: pipx install flowgraphapp
flowgraph                              # serves http://127.0.0.1:8765 and opens your browser

If your shell has a pip command, pip install flowgraphapp is equivalent. The PyPI distribution is named flowgraphapp; the installed command is flowgraph, not flowgraphapp.

From source (developers — the private-repo path, no PyPI needed):

# 1. build the frontend once (the server serves app/dist)
cd app && npm run build && cd ..
# 2. install EDITABLE — the `flowgraph` command links back to this repo, so every
#    `git pull` / local edit is live immediately (never reinstall, never publish)
python3 -m pip install -e server/        # or: pipx install -e server/
# 3. run it
flowgraph

A plain pip install server/ (no -e) also works but installs a frozen COPY — it goes stale the moment the repo moves, which is exactly how a flowgraph command ends up missing newer subcommands. Editable is the right mode while developing. The headless intent runner (flowgraph run "…") resolves app/scripts/headless-intent.ts relative to the repo — automatic under -e; a copied install needs FLOWGRAPH_HEADLESS_ENTRY set.

Open the printed URL if the browser does not launch automatically. The default port is http://127.0.0.1:8765; if that port is already busy, FlowGraph picks a free port and prints the replacement URL. Stop with Ctrl-C. Options: flowgraph --port 0 (auto-pick a free port), --no-open (don't open the browser), flowgraph --help.

Why local

  • Offline / air-gapped — no Cloudflare, no network required for the app itself.
  • Privacy / data locality — your graph lives in the browser's IndexedDB on this machine.
  • On-device models — point at Ollama / LM Studio for zero-key, zero-cost AI.
  • No size ceiling — not bound by hosting per-file limits as the app grows.

AI

Local-model-first: if a local runtime (Ollama :11434, LM Studio :1234) is reachable, it's used with no key. Otherwise bring your own provider key — stored in the OS keychain, used server-side, never sent to the browser:

flowgraph keys set anthropic     # or openrouter / openai / google / deepseek
flowgraph keys list              # shows source, never the key

MCP tools (live execution)

The app's Agent view can execute action steps against your MCP servers — allowlisted, deny-by-default, configured server-side only (the browser never holds a session or a secret). Create mcp-servers.json in the FlowGraph config dir (macOS ~/Library/Application Support/flowgraph/, Linux ~/.config/flowgraph/; override with FLOWGRAPH_MCP_CONFIG=/path/to/file.json):

{
  "servers": {
    "revit": {
      "kind": "mcp", "transport": "stdio",
      "command": "python3", "args": ["-m", "revit_mcp_server"],
      "env": { "REVIT_TOKEN": "…" },
      "tools": ["export_ifc", "list_levels"],
      "timeoutMs": 60000
    }
  },
  "limits": { "callTimeoutMs": 30000, "maxResponseBytes": 262144 }
}

Only named servers run, and only their named tools (or "*") are discoverable/callable. Every call is timeout-bound and size-capped; a duplicate of the same pending run is refused (idempotency); config secrets are never echoed in any response. Each server is spawned with a minimal environment (PATH/HOME/locale + the entry's own env) — API keys in your shell are never inherited by MCP subprocesses — and a server that fails or hangs during startup is killed on the spot, never orphaned. executed:true in the app means a genuine tools/call completed here — nothing else can flip a run to LIVE. Transport is stdio in this version.

Security (safe by default)

Binds loopback only (127.0.0.1); a per-session token is required (delivered via the terminal + a 0600 file; the auto-opened URL carries a one-time ticket, never the token). Host-header allow-listing blocks DNS-rebinding from websites you visit; Origin checks, strict CSP, and security headers apply to every route. Exposing beyond loopback (--allow-lan) requires TLS. See docs/18-local-server.md for the full threat model.

Updates

pip install -U flowgraphapp (or flowgraph upgrade) updates the app and server together; your data is untouched. A calm one-line "update available" notice appears at startup — disable with FLOWGRAPH_NO_UPDATE_CHECK=1.

What is in the package

The PyPI wheel contains the local server plus the compiled FlowGraph web app. It does not include the repo's private planning docs, reference folders, tests, app source tree, or development scripts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flowgraphapp-0.2.18-py3-none-any.whl (7.7 MB view details)

Uploaded Python 3

File details

Details for the file flowgraphapp-0.2.18-py3-none-any.whl.

File metadata

  • Download URL: flowgraphapp-0.2.18-py3-none-any.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for flowgraphapp-0.2.18-py3-none-any.whl
Algorithm Hash digest
SHA256 0765e31a560d42feaad175585e6ed385866ec905536215abd8ad761695c5e666
MD5 075191707a3a50c4a370aaf5000e9130
BLAKE2b-256 860d834d6566fba0049e8089d8b715ae96c1fdf4b91b785bee51c5bdf651cb75

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowgraphapp-0.2.18-py3-none-any.whl:

Publisher: publish.yml on ndsolaz/flowgraph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page