Skip to main content

FlowJet

PyPI version Python versions License: MIT

FlowJet is a coding agent you can run two ways:

  • fj — ask a question in your terminal, get an answer. No UI, no context-switching.
  • flowjet-server — the same agent as a service: ACP over WebSocket and an OpenAI-compatible HTTP API, so any OpenAI SDK can drive it.

It runs on soothe-nano — tools, skills, MCP, subagents — with SQLite persistence, so every conversation is resumable.


Install

pip install flowjet              # CLI
pip install 'flowjet[server]'    # CLI + HTTP service

Requires Python 3.11+. The server is an optional extra — installing just flowjet pulls a single runtime dependency.

Configure

fj setup                         # guided: pick a local or hosted model
# or, with no config file at all:
export OPENAI_API_KEY=sk-...
fj summarize README.md

fj setup writes ~/.soothe/config/nano.yml. Without it, FlowJet falls back to OPENAI_API_KEY or ANTHROPIC_API_KEY.

Not sure your machine is ready? fj doctor (add --deep, --live-llm).

Backends

Two runtimes can build the agent; they are switched independently per surface:

Env var Surface Default Values
FLOWJET_BACKEND CLI (fj) soothe soothe, nano
FLOWJET_SERVER_BACKEND flowjet-server / fj serve nano soothe, nano

soothe is the host runtime (extra middleware and tools over the same soothe-nano engine). The server defaults to nano because it needs a dual-mode agent — AGENT and ASK graphs selected per request — which soothe does not expose yet; on soothe the server builds one host agent per mode instead.


CLI

fj explain this repo
fj -f and now add tests          # continue this project's latest conversation
fjf what did we decide?          # short alias of fj -f
fj -l                            # list recent conversations
Flag Meaning
-f / --follow Continue the latest thread in this project
-t ID / --thread Continue (or pin) a specific thread — overrides -f
-l / --list List recent threads (newest first)
-n NUM How many threads -l shows (0 = all)
-a / --ask Read-only: answer without touching files
-v / --verbose Mirror tool calls on stderr
-c PATH / -w DIR Alternate nano.yml / workspace root

-f is scoped to your current project, so work in other checkouts never hijacks your thread.

Enable shell completion (predicts full queries, not just flags):

eval "$(fj completion zsh)"      # or: fj completion bash

Server

flowjet-server                   # host :: (dual-stack), port 8618
fj serve --port 8618             # same, from the CLI
from openai import OpenAI

client = OpenAI(api_key="local", base_url="http://127.0.0.1:8618/v1")
print(client.responses.create(model="default", input="Hello"))
Endpoint Purpose
POST /v1/responses Create a response (stream=true → SSE)
GET / DELETE /v1/responses/{id} Retrieve / cancel
POST /v1/chat/completions Chat Completions (non-stream + SSE)
GET /v1/models Model ids
GET /health Liveness
WS /acp Agent Client Protocol

Per-request options go in extra_body.flowjet:

Field Values Meaning
session string Isolates workspace + conversation thread
interaction_mode agent (default) | ask ask is hard read-only
projection report | progress | developer How much SSE detail to expose

Full configuration, environment variables and the security model: docs/server.md · deployment: deploy/README.md.


Extend

Add skills and MCP servers in nano.yml:

skills:
  - ~/.soothe/skills/my-reviewer

mcp_servers:
  - name: filesystem
    transport: stdio
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]

Skills are SKILL.md files loaded on demand; MCP tools activate on demand by default (defer: true).


Development

git clone https://github.com/caesar0301/flowjet.git
cd flowjet
make sync-dev && make test && make lint

Upgrading from 1.x

Version 2.0 merges the former flowjet-server project into this one. The distribution is now flowjet and import paths changed. See docs/upgrade.md.

License

MIT

Metadata

Release files for flowjet 2.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flowjet 2.0.4
File Size Uploaded
flowjet-2.0.4.tar.gz 247.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flowjet 2.0.4
File Interpreter ABI Platform
flowjet-2.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 510.3 kB

Release files / flowjet-2.0.4.tar.gz

Download URL flowjet-2.0.4.tar.gz
Size 247.1 kB
Tags Source
SHA-256 checksum
How to use checksums
667795c99ae4e4ea691efe85f21a859fcaed74d12f7e17d0e03bd823fd6bb054
BLAKE2b-256 checksum
How to use checksums
84f216f95336010c2d60c5fdef77e4af8791a64222157ccd9578897a087e1ef1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / flowjet-2.0.4-py3-none-any.whl

Download URL flowjet-2.0.4-py3-none-any.whl
Size 263.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ee9bf018c778a4ed61a8be01fcb3d71a82e24bbe42565f175586c4a83f65eb6
BLAKE2b-256 checksum
How to use checksums
7da841ecfb09a10a9ce2611ef92dc55cc598b905738b44f89d19b0481b45b2fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

2.0.11

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

This release

2.0.4 This release

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page