Skip to main content

fj — one-shot CLI coding agent powered by soothe-nano

Project description

fj

PyPI version PyPI - Python Version CI License: MIT

🎥 Watch the demo video on Vimeo

fj is a one-shot coding-agent CLI for the terminal. Type a question, get an answer — no UI, no context-switching:

fj explain this repo
fj summarize README.md
fj -f what did we decide last time?

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

Package: fj-ai · Runtime: soothe-nano


Install

pip install fj-ai
# or
uv tool install fj-ai

Requires Python 3.11+.

Configure

Option A — Local model (guided):

fj setup

Walks you through an OpenAI-compatible endpoint (Ollama, LM Studio, vLLM, …) and writes the basics to ~/.soothe/config/nano.yml.

Option B — Cloud (no config file):

export OPENAI_API_KEY=sk-...
fj summarize README.md

Missing nano.yml falls back to OPENAI_API_KEY or ANTHROPIC_API_KEY.

Run

fj who are you
fj list Python files in this directory
fj refactor the parser to use dataclasses

Conversation

Threads persist across runs in SQLite. Continue the latest, jump to a specific one, or list them:

fj -f and now add tests          # continue latest active thread
fj -t abc123 continue from here  # continue a specific thread
fj -l                            # list recent threads

Flags

fj [options] [--] <query...>
Flag Meaning
-f / --follow Continue the latest active thread
-t ID / --thread Continue (or pin) a specific thread
-l / --list List recent threads (newest first)
-n NUM How many threads -l shows (0 = all)
-c PATH / --config Use an alternate nano.yml
-w DIR / --workspace Workspace root
--no-stream Wait for the full answer instead of streaming
-v / --verbose Mirror tool calls on stderr

Shell completion (AI-assisted, predicts natural-language intents, not just flags):

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


Extend

Skills

fj ships AgentSkills (planning, TDD, debugging, document tools, MCP builder, and more) and supports your own via nano.yml:

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

Each skill is a SKILL.md with frontmatter; progressive loading keeps the catalog compact and loads on demand.

MCP servers

Connect any Model Context Protocol server:

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

With defer: true (default), MCP tools activate on demand.


Development

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

CI runs format, lint, and tests on Python 3.11–3.13; releases go GitHub Release → PyPI.

Powered by

Built on soothe-nano. For a full TUI coding agent from the same stack, see mirasoth/soothe.

License

MIT

Project details


Download files

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

Source Distribution

fj_ai-1.0.13.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

fj_ai-1.0.13-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file fj_ai-1.0.13.tar.gz.

File metadata

  • Download URL: fj_ai-1.0.13.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for fj_ai-1.0.13.tar.gz
Algorithm Hash digest
SHA256 0bd803ec1926ff41f1914d29b164c62bd62893920579a356a41bfb8f25c26af2
MD5 9f1482ea6bacd3286405cd3e3b1347fb
BLAKE2b-256 2818823525dce3f8b09ec585d520bd4c2d85a6cb2eec930f0e4d39870bb041ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for fj_ai-1.0.13.tar.gz:

Publisher: release.yml on caesar0301/fj-ai

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

File details

Details for the file fj_ai-1.0.13-py3-none-any.whl.

File metadata

  • Download URL: fj_ai-1.0.13-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for fj_ai-1.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 260ea462d055c9cd8d6c8a3b41a222e3475da96221ff4046f7612546caf4af33
MD5 98d35dd818b1c1a87d80f8c169869878
BLAKE2b-256 1ba63c913bcb8cad18da80bbb4ee64a9ac32aa2d0f95f43201e65a98be31787f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fj_ai-1.0.13-py3-none-any.whl:

Publisher: release.yml on caesar0301/fj-ai

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