FlowJet
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)
| File | Size | Uploaded | |
|---|---|---|---|
| flowjet-2.0.1.tar.gz | 237.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|