Skip to main content

solid-cli v1.1.0

A SOLID-inspired Python CLI toolkit for autonomous research, multimodal AI review (text / image / video / audio), and self-organising knowledge management. Built the way Uncle Bob would build it.

Quick Start

# Install in editable mode
python -m pip install -e .

# See all commands
python -m solid_cli --help

# Check version
solid-cli --version

# Agent onboarding — comprehensive guide for humans and AI agents
python -m solid_cli onboard
python -m solid_cli onboard --json   # machine-readable for agents

Commands

Command What it does
research Web-search via OpenAI → Markdown report in knowledge_base/
review Upload file or text to Gemini → quality feedback in feedback/
download Fetch sample image/video/audio for testing into samples/
read Display a saved knowledge-base document
onboard Full help guide for humans and AI agents
hello Greeting example (--name Alice)
sum Sum integers example (sum 1 2 3)

research — autonomous web search

solid-cli research "OpenAI Responses API best practices 2025" --tag openai_api
solid-cli research --list              # catalogue
solid-cli research --search apple      # filter by keyword
solid-cli research --batch queries.txt # bulk from file (tag|query format)
solid-cli research --stats             # aggregate library stats
solid-cli research --delete 3          # remove document #3
solid-cli research "topic" --force     # save even with 0 sources
solid-cli read 1                       # display document #1

Queries that return 0 sources are skipped by default to keep the library clean. Use --force to override.

review — multimodal Gemini quality review

solid-cli review photo.png "Check composition and quality"
solid-cli review clip.mp4  "Summarise content, assess quality"
solid-cli review song.wav  "Transcribe and assess audio quality"
solid-cli review code.py   "Code review for SOLID adherence"
solid-cli review --text "Some text with erors" "Check spelling"
solid-cli review --list              # catalogue
solid-cli review --read 1            # display feedback #1

download — fetch test assets

solid-cli download all               # image + video + audio
solid-cli download --url URL --name my_file.png
solid-cli download --list

Environment variables

Variable Purpose
OPENAI_API_KEY Required for research (web search via OpenAI)
GEMINI_API_KEY Required for review (multimodal AI via Gemini)
KB_DIR Override knowledge-base directory (default ./knowledge_base)
FEEDBACK_DIR Override feedback directory (default ./feedback)

Place these in a .env file — python-dotenv loads it automatically.

Architecture (SOLID + Clean)

solid_cli/
├── command.py              ← Abstract Command interface (DIP)
├── registry.py             ← Auto-discovers commands (OCP)
├── cli.py / __main__.py    ← Thin entry points
├── services/
│   ├── search_service.py   ← SearchService ABC + OpenAI impl (SRP, LSP)
│   ├── review_service.py   ← ReviewService ABC + Gemini impl (SRP, LSP)
│   ├── storage_service.py  ← KnowledgeBaseStorage (SRP)
│   └── feedback_storage.py ← FeedbackStorage (SRP)
└── commands/
    ├── research.py         ← Web-search → knowledge_base/
    ├── review.py           ← Gemini multimodal → feedback/
    ├── download.py         ← Fetch test media → samples/
    ├── read.py             ← KB reader
    ├── onboard.py          ← Agent/human help system
    ├── hello.py            ← Example
    └── sum.py              ← Example

Output directories

knowledge_base/             ← research output
    index.json
    <date>/<topic>.md

feedback/                   ← Gemini review output
    index.json
    <date>/
        images/ video/ audio/ text/ documents/
            <review>.md

samples/                    ← downloaded test assets

Adding a new command

  1. Create solid_cli/commands/my_cmd.py
  2. Subclass Command and implement name, add_arguments, run
  3. Done — the registry auto-discovers it, no wiring needed

External packages can also register commands via the solid_cli.commands entry-point group in their own pyproject.toml.

Metadata

Release files for solid-cli 1.1.0

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

Source distribution (sdist)

Source distribution for solid-cli 1.1.0
File Size Uploaded
solid_cli-1.1.0.tar.gz 18.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for solid-cli 1.1.0
File Interpreter ABI Platform
solid_cli-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.8 kB

Release files / solid_cli-1.1.0.tar.gz

Download URL solid_cli-1.1.0.tar.gz
Size 18.1 kB
Tags Source
SHA-256 checksum
How to use checksums
655a3f5cc1714bf6e17d14d8d3dd5c763a346e778a3e06b26a7ebb2cab6bab78
BLAKE2b-256 checksum
How to use checksums
3547c9aa597e526c6cc4ef7261a4ecdd8ad0a32708a7f16006d7aadbe537f847
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / solid_cli-1.1.0-py3-none-any.whl

Download URL solid_cli-1.1.0-py3-none-any.whl
Size 25.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
66008738a0cb121ab597330c2ed63736239b78c71032458674f9bc225b0566c7
BLAKE2b-256 checksum
How to use checksums
ef23edda9894c16df5e75f174be37a93fb1657378712292a0e9ba8f7d25f2077
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

1.1.0 This release

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