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 $FLOWJET_HOME/config/nano.yml (default ~/.flowjet/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.10

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.10
File Size Uploaded
flowjet-2.0.10.tar.gz 269.4 kB Details

Built distribution (wheel)

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

Total release size: 565.7 kB

Release files / flowjet-2.0.10.tar.gz

Download URL flowjet-2.0.10.tar.gz
Size 269.4 kB
Tags Source
SHA-256 checksum
How to use checksums
25725a6fa45cd871ebe454782e2c5f70470e4768a0f364c643a4de9c225fca84
BLAKE2b-256 checksum
How to use checksums
000e8d137c378d530bb2fae28d5ece2ca46d4bfc49767cd204ff21bd157acd48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

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

Download URL flowjet-2.0.10-py3-none-any.whl
Size 296.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48decd83dc09ee6836fd7defd5166a47762c8f6e047186851e0a63df0b23379f
BLAKE2b-256 checksum
How to use checksums
bb6a9e26427e876fb007a40c8b43aa65366b67a7abb84137882ff078b1cd1094
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

2.0.11

2 release files

This release

2.0.10 This release

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

2.0.4

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