Skip to main content

A powerful CLI super agent

Project description

🐱 Adorable CLI

Command-line Super Agents built on Agno

Python License PRs Welcome

Quick StartFeaturesUsageBuildContributing

English 中文


Command-line agent built on Agno. Task-centric interaction: you set goals, the agent drives a "collect → act → verify" loop, and uses a todo list when tasks get complex.

Supports OpenAI-compatible APIs.


🧩 Features

  • Interactive sessions with Markdown output and streaming
  • Plan → Execute → Verify loop designed for multi-step tasks
  • Multi-tool orchestration: web search, crawl, file I/O, math, memory
  • Local persistent memory (~/.adorable/memory.db) across sessions
  • Simple configuration; supports custom models and compatible API providers

⚡ Quick Start

Method Command Best For
🐍 pipx pipx install adorable-cli ✅ Recommended - Linux/macOS
🚗 auto curl -fsSL https://leonethan.github.io/adorable-cli/install.sh | bash non-programmer - Linux/macOS
📦 pip pip install adorable-cli Traditional Python environments

On first run you will be guided to set API_KEY, BASE_URL, MODEL_ID, TAVILY_API_KEY into ~/.adorable/config (KEY=VALUE). You can run adorable config anytime to update.

🚀 Usage

# Start interactive session
adorable

# Configure required settings (API_KEY/BASE_URL/MODEL_ID/TAVILY_API_KEY)
adorable config

# Show help
adorable --help

Exit keywords: exit / quit / q / bye

🔧 Configuration

  • Default model: gpt-4o-mini
  • Sources:
    • Interactive: adorable config (writes to ~/.adorable/config)
    • Environment: API_KEY or OPENAI_API_KEY; BASE_URL or OPENAI_BASE_URL; TAVILY_API_KEY; ADORABLE_MODEL_ID

Example (~/.adorable/config):

API_KEY=sk-xxxx
BASE_URL=https://api.openai.com/v1
TAVILY_API_KEY=tvly_xxxx
MODEL_ID=gpt-4o-mini

🧠 Capabilities

  • Reasoning & planning: ReasoningTools (structured reasoning and step planning)
  • Calculation & checks: CalculatorTools (numeric operations and validation)
  • Web search: TavilyTools (requires TAVILY_API_KEY)
  • Web crawling: Crawl4aiTools (visit URLs and extract content)
  • File operations: FileTools (search/read/write; scope limited to the launch directory cwd)
  • Memory storage: MemoryTools + SqliteDb (~/.adorable/memory.db)

System prompt and TODO list guidelines: see src/adorable_cli/prompt.py.

🧪 Example Prompts

  • "Summarize the latest Python features and provide example code"
  • "Read code from the project's src directory and generate a detailed README saved to the repo root"

🛠️ Run from Source (uv/venv)

Using uv (recommended):

uv sync
uv run -m adorable_cli.main
# 或:uv run src/adorable_cli/main.py

Note: To pin Python version, use uv sync -p 3.11.

Using venv:

python3 -m venv .venv
. .venv/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
python -m adorable_cli.main

📦 Build & Release

  • Entry points: see pyproject.toml (adorable, ador)
  • PyPI release: push v* tags or trigger manually; CI builds and publishes
    • Release command: git tag vX.Y.Z && git push origin vX.Y.Z
  • Automated versioning: release-please based on Conventional Commits
    • Common types: feat: fix: perf: refactor: docs:
  • Local build & install:
    • python -m build (outputs dist/*.tar.gz and dist/*.whl)
    • python -m pip install dist/*.whl

🤝 Contributing

  • PRs and issues welcome; follow Conventional Commits so release-please can generate changelogs.
  • Dev tips:
    • Use pipx or virtualenv;
    • Follow pyproject.toml style (Ruff/Black, line width 100).
    • Run adorable --help to quickly validate CLI behavior.

💡 FAQ & Troubleshooting

  • Auth failure / model unavailable:
    • Check API_KEY / BASE_URL; ensure MODEL_ID is supported
  • Poor search quality:
    • Set TAVILY_API_KEY; be explicit about search goals and scope
  • PEP 668 (system env disallows writes):
    • Prefer pipx to get an isolated, cross-platform CLI environment

🔒 Privacy & Security

  • The agent may read/write files under the current working directory; review changes in production
  • Local memory is stored at ~/.adorable/memory.db; remove it if not needed

🧭 Developer Guide

  • Style & config: Ruff/Black in pyproject.toml, line width 100
  • CLI entrypoints: src/adorable_cli/__main__.py, src/adorable_cli/main.py
  • System prompt: src/adorable_cli/prompt.py

📜 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

adorable_cli-0.1.11.tar.gz (268.5 kB view details)

Uploaded Source

Built Distribution

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

adorable_cli-0.1.11-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file adorable_cli-0.1.11.tar.gz.

File metadata

  • Download URL: adorable_cli-0.1.11.tar.gz
  • Upload date:
  • Size: 268.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for adorable_cli-0.1.11.tar.gz
Algorithm Hash digest
SHA256 2b9cb3d1fcd786fb72538336bf3343a7e012db5baecdc2867db76a8eec475fd7
MD5 7f53ebbcb0d310b98186a7e8e63cf072
BLAKE2b-256 39ba3873b66526ba150df4596204e241a95fcc34048d0d42a866e64b6e05605b

See more details on using hashes here.

Provenance

The following attestation bundles were made for adorable_cli-0.1.11.tar.gz:

Publisher: pypi-publish.yml on LeonEthan/adorable-cli

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

File details

Details for the file adorable_cli-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: adorable_cli-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for adorable_cli-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 c05845319cb602d71e63cc15a152862abbcc4f6c11f445b1ab40095dc4c8bcca
MD5 31767fa72c4c80de662584184183722c
BLAKE2b-256 35f5dd7ba3ea24f208d3e50023bf529203f23c3b8260a6d6b007774724fd9f9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for adorable_cli-0.1.11-py3-none-any.whl:

Publisher: pypi-publish.yml on LeonEthan/adorable-cli

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