Skip to main content

A powerful CLI super agent

Project description

adorable logo

Adorable CLI - Deep Agent built on Agno

Python License PRs Welcome

Quick InstallFeaturesUsageConfiguration

English 中文


Adorable is a deep agent for complex, long-horizon tasks, powered by the Agno framework. It operates through continuous interleaved reasoning and action—thinking before every step, executing with precision, and analyzing results—to handle research, coding, and system automation reliably.

Built on Agno's agent architecture with persistent memory, tool orchestration, and OpenAI-compatible APIs.


🧩 Features

  • Deep Agent: Built on Agno framework for planning, web search, coding, and file operations.
  • Interleaved Thinking: Continuous Think → Act → Analyze loop—reasons before every step, never guesses, verifies all assumptions.
  • Persistent Memory: Uses SQLite (~/.adorable/memory.db) and session summaries to maintain context across long sessions.
  • Multi-Modal Toolset:
    • Planning: Reasoning engine & Todo list management.
    • File Operations: File reading, writing, and directory navigation.
    • Web Search: Deep web search (DuckDuckGo) & web content fetching (Fetch MCP).
    • Coding: Python scripting & Shell commands.
    • Vision: Vision capabilities for image analysis.
  • Interactive UI: Rich terminal interface with history, autocompletion, and shortcuts.

⚡ Quick Install

We recommend using uv to install and manage Adorable CLI.

Install

uv tool install --python 3.13 adorable-cli

Upgrade

uv tool upgrade adorable-cli --no-cache

If you run into missing dependencies after upgrading, force a reinstall:

uv tool upgrade adorable-cli --reinstall --no-cache

On first run you will be guided to set API_KEY, BASE_URL, MODEL_ID into ~/.adorable/config.json (and a legacy ~/.adorable/config is also maintained for compatibility). You can run ador config anytime to update.

🖥 Platform Support

  • OS: macOS, Linux x86_64
  • Arch: x86_64; Linux arm64 currently not supported
  • Python: >= 3.10 (recommended 3.11)
  • Linux glibc: >= 2.28 (e.g., Debian 12, Ubuntu 22.04+, CentOS Stream 9)

🚀 Usage

# Start interactive session
adorable
# Or use alias
ador

# Configure settings
ador config

# Show help
ador --help

CLI Commands

  • ador / adorable: Start interactive chat
  • ador config: Configure API keys and models
  • ador version: Print CLI version
  • ador kb check: Smoke-check knowledge backend (e.g., pgvector)

Interactive Shortcuts

  • Enter: Submit message
  • Alt+Enter / Ctrl+J: Insert newline
  • @: File path completion
  • /: Command completion (e.g., /help, /clear)
  • Ctrl+D / exit: Quit session
  • Ctrl+Q: Quick exit

Global Options

  • --model <ID>: Primary model ID (e.g., gpt-4o)
  • --base-url <URL>: OpenAI-compatible base URL
  • --api-key <KEY>: API key
  • --debug: Enable debug logging
  • --plain: Disable color output

Example:

ador --api-key sk-xxxx --model gpt-4o chat

🔧 Configuration

  • Config File: ~/.adorable/config.json (legacy: ~/.adorable/config)
  • Environment Variables:
    • OPENAI_API_KEY / API_KEY
    • OPENAI_BASE_URL / BASE_URL
    • DEEPAGENTS_MODEL_ID / MODEL_ID

Advanced Configuration

  • Database Path: set ADORABLE_DB_PATH (or db.path in config.json) to share sessions between CLI and ador serve.
  • Knowledge Backend: set knowledge.backend to lancedb (default) or pgvector.
    • For pgvector, set knowledge.pgvector.dsn and optional knowledge.pgvector.table.
  • Extensions:
    • ~/.adorable/tools, ~/.adorable/skills, ~/.adorable/commands
    • Optional: ~/.claude/skills

Example (~/.adorable/config.json):

{
  "openai": {
    "api_key": "sk-xxxx",
    "base_url": "https://api.openai.com/v1"
  },
  "models": {
    "default": "gpt-4o",
    "fast": "gpt-4o-mini",
    "vlm": "gpt-4o"
  },
  "confirm_mode": "ask",
  "server": {
    "host": "0.0.0.0",
    "port": 7777
  }
}

🧠 Capabilities

  • Planning: ReasoningTools for strategy; TodoTools for task tracking.
  • Research: DuckDuckGoTools for search; Fetch MCP for web content extraction; FileTools for local context.
  • Execution: PythonTools for logic/data; ShellTools for system ops.
  • Perception: ImageUnderstandingTool for visual inputs.

See src/adorable_cli/agent/prompts.py for the full system prompt and guidelines.

🧪 Example Prompts

  • "Research the current state of quantum computing and write a summary markdown file."
  • "Clone the 'requests' repo, analyze the directory structure, and create a diagram."
  • "Plan and execute a data migration script for these CSV files."

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.2.16.tar.gz (869.6 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.2.16-py3-none-any.whl (56.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: adorable_cli-0.2.16.tar.gz
  • Upload date:
  • Size: 869.6 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.2.16.tar.gz
Algorithm Hash digest
SHA256 eb836f6de7f45a13a90516248c881393c383dffce973fa2de1db314d0aa07284
MD5 6fe1a134c261b82b5c44b55871c824ef
BLAKE2b-256 c34b98b83747dfa18b9fc282c656e1d6562923b33c890cab38ce428dc5e5f705

See more details on using hashes here.

Provenance

The following attestation bundles were made for adorable_cli-0.2.16.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.2.16-py3-none-any.whl.

File metadata

  • Download URL: adorable_cli-0.2.16-py3-none-any.whl
  • Upload date:
  • Size: 56.9 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.2.16-py3-none-any.whl
Algorithm Hash digest
SHA256 42f76c8742ef81655cbb5915ccd4bc3351b4d038590c15bcc850dec4d2d68dc7
MD5 bc55d12b65d6bf1e73c93eb9ea0fbd33
BLAKE2b-256 347f3ad820b6d47870375a059ba6e513155768da42971b6bad0582e91ba7ca2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for adorable_cli-0.2.16-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