Skip to main content

Doggo

Doggo 🐕, your loyal digital companion who finds files the way you think about them.

Test Package version


Doggo is a CLI tool that uses AI to help you search for and organize images using natural language queries. Instead of remembering exact filenames, just describe what you're looking for!

Features

  • 🔍 Semantic Search: Find images by describing them in natural language
  • 🗂️ AI-Powered Organization: Automatically organize images into intelligent categories
  • ✏️ Smart Renaming: Generate descriptive filenames based on image content
  • 🎯 Smart Results: AI-powered similarity matching
  • 💻 CLI Interface: Simple command-line interface
  • 📊 Rich Output: Beautiful, informative search results

Demo

https://github.com/user-attachments/assets/568d7f3d-9ff6-4adb-89db-71455a174c46

Usage

pip install doggo

Quick Start

  1. Initialize Doggo:

    doggo init
    
  2. Configure your AI provider:

    For OpenAI (default):

    doggo config set --api-key "sk-your-openai-api-key"
    

    For Ollama (local models):

    doggo config set --provider-url "http://localhost:11434/v1" \
                     --chat-model "gemma3:latest" \
                     --embedding-model "nomic-embed-text:latest"
    

    Custom OpenAI setup:

    doggo config set --provider-url "https://api.openai.com/v1" \
                     --chat-model "gpt-4" \
                     --embedding-model "text-embedding-ada-002" \
                     --api-key "sk-your-openai-api-key"
    
  3. View current configuration:

    doggo config show
    
  4. Index your images:

    doggo index /path/to/your/images
    
  5. Search naturally:

    doggo search "a cute dog playing in the park"
    doggo search "sunset over mountains"
    doggo search "people having dinner"
    

    By default, Doggo shows the top 5 results and automatically opens the best match in your system's previewer. Use --no-open to disable auto-opening or --limit to change the number of results.

  6. Organize your images:

    # Organize images into AI-generated category folders
    doggo organize /path/to/your/images
    
    # Organize with descriptive filenames
    doggo organize /path/to/your/images --rename
    
    # Organize to a custom output directory
    doggo organize /path/to/your/images --rename --output /path/to/organized
    
    # Organize in place (within the same directory)
    doggo organize /path/to/your/images --inplace
    

Organizing Images

Doggo can intelligently organize your images using AI-generated categories and descriptive filenames:

AI-Generated Categories

During indexing, Doggo analyzes each image and assigns it to a category (e.g., "flower", "dog", "landscape", "food"). When you run the organize command, images are automatically grouped into folders based on these categories.

Smart Renaming

With the --rename flag, Doggo generates descriptive filenames based on the image content. Instead of generic names like "IMG_001.jpg", you get meaningful names like "red_rose_garden.jpg" or "golden_retriever_park.jpg".

Organization Options

  • Default: Creates an "organized" folder in the source directory
  • Custom output: Use --output to specify a different destination
  • In-place: Use --inplace to organize within the original directory
  • Combined: Use --rename with any output option for descriptive filenames

Example Organization

Before:
📁 photos/
  ├── IMG_001.jpg (a red rose)
  ├── DSC_123.jpg (a dog in park)
  └── photo.jpg (sunset)

After:
📁 organized/
  ├── 📁 flower/
  │   └── red_rose_garden.jpg
  ├── 📁 dog/
  │   └── golden_retriever_park.jpg
  └── 📁 landscape/
      └── sunset_beach_view.jpg

How it works

  • AI-Powered Indexing: Doggo scans directories for images, uses AI vision models to generate detailed descriptions and categories of each image, and converts these descriptions into vector embeddings for semantic search capabilities. Supports both OpenAI and local Ollama models.

  • Vector Database Storage: The tool stores image metadata, AI-generated descriptions, categories, and vector embeddings in a local ChromaDB database, enabling fast similarity-based retrieval and intelligent organization without needing to re-process images on each search.

  • Natural Language Search: Users can search for images using descriptive queries like "cute dog playing in the park" - the system converts the query to a vector embedding and finds the most semantically similar images using vector similarity search.

  • Intelligent Organization: Using the AI-generated categories and descriptions, Doggo can automatically organize images into meaningful folders and generate descriptive filenames, making it easy to find and manage large collections of images.

  • CLI Interface: Provides a simple command-line interface with commands for initialization (doggo init), configuration (doggo config), indexing (doggo index

Configuration

Doggo supports multiple AI providers through a flexible configuration system:

Supported Providers

  • OpenAI: Cloud-based AI services (default)
  • Ollama: Local AI models running on your machine

Configuration Options

  • --provider-url: AI provider endpoint (default: OpenAI)
  • --chat-model: Model for image analysis and chat (default: gpt-4o)
  • --embedding-model: Model for text embeddings (default: text-embedding-3-small)
  • --api-key: API key (required for OpenAI, optional for Ollama)

Example Configurations

OpenAI with custom models:

doggo config set --provider-url "https://api.openai.com/v1" \
                 --chat-model "gpt-4" \
                 --embedding-model "text-embedding-ada-002" \
                 --api-key "sk-your-key"

Ollama with local models:

doggo config set --provider-url "http://localhost:11434/v1" \
                 --chat-model "llama3.2:3b" \
                 --embedding-model "nomic-embed-text:latest"

View current settings:

doggo config show

Provider-Specific Notes

  • OpenAI: Requires API key, supports vision models for image analysis
  • Ollama: No API key required, ensure Ollama is running locally
  • Vision Support: Not all Ollama models support image analysis - use models like llama3.2:3b that have vision capabilities

Contributing

  • Contributions are welcome! Please feel free to submit a pull request.
  • See open issues for ideas.

License

MIT License - see the LICENSE file for details.

Metadata

Release files for doggo 0.3.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 doggo 0.3.0
File Size Uploaded Provenance Actions
doggo-0.3.0.tar.gz 484.6 kB Without provenance Details for doggo-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for doggo 0.3.0
File Interpreter ABI Platform Actions
doggo-0.3.0-py3-none-any.whl Python 3 none any Details for doggo-0.3.0-py3-none-any.whl

Total release size: 502.1 kB

Release files / doggo-0.3.0.tar.gz

Download URL doggo-0.3.0.tar.gz
Size 484.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d8c93b5198384c66de7967a5631cab8649c013568f01023d5c6827c93698fea8
BLAKE2b-256 checksum
How to use checksums
bc781b08841d8701bd1c8cb444a26a9484edd61cc8c3dc2adbb0aa30569ed04c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release files / doggo-0.3.0-py3-none-any.whl

Download URL doggo-0.3.0-py3-none-any.whl
Size 17.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
adc2df2a62f05e989ee6d2da34f4b162ffab7efda8101ea4fd87ac35d7812677
BLAKE2b-256 checksum
How to use checksums
67130a7ebd691df11963d25c0b750beadfd7d63193c7791c7cbba119c94478d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Security for doggo 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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