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).


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.1

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.1
File Size Uploaded
flowjet-2.0.1.tar.gz 237.8 kB Details

Built distribution (wheel)

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

Total release size: 491.0 kB

Release files / flowjet-2.0.1.tar.gz

Download URL flowjet-2.0.1.tar.gz
Size 237.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ed4f89de1260cc28104e9ff35d5313fab84c1268ded86db763b91c8a98207794
BLAKE2b-256 checksum
How to use checksums
2b4696b6f9de6faaebde71e49bb4efd800de70c297abfb6dff416dc3339b3641
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL flowjet-2.0.1-py3-none-any.whl
Size 253.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b142843d0e1b2f447fc6dc9ff338236197fce7c0a59445a4df7aa4dd4d8a8cc2
BLAKE2b-256 checksum
How to use checksums
06b22d2d7734e93ef69146ebdef3c309cbec2b514339c6f33c2f6bc6cb5fa238
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

This release

2.0.1 This release

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