Skip to main content

Image Handling in EchOS

EchOS provides comprehensive support for storing, organizing, and searching images as part of your personal knowledge base.

Overview

Images are treated as first-class content in EchOS, stored alongside notes, articles, and other content types. Each image includes:
  • Metadata: dimensions, format, file size, EXIF data
  • Storage: original file on disk + markdown representation
  • Search: embedded descriptions for semantic search
  • Organization: tags, categories, and captions

Supported Formats

  • JPEG/JPG
  • PNG
  • GIF
  • WebP
  • AVIF
  • TIFF
  • BMP
Maximum file size: 20MB

Image Storage Architecture

Three-Layer Storage

Like all content in EchOS, images use a three-layer storage architecture:
  1. Original File: Stored in knowledge/image/{category}/{hash}.{ext}
  2. Markdown Note: Stored in knowledge/note/{category}/{date}-{slug}.md
  3. SQLite Index: Metadata for fast retrieval and search
  4. Vector Embeddings: For semantic search based on descriptions

Directory Structure

Markdown Format

Each image note includes:

Using Images

Via Telegram

Send a photo to the EchOS bot:
  1. Simple: Just send the photo - it will be saved automatically
  2. With Caption: Add a caption for context
  3. Auto-Categorization: The agent will categorize it based on content
Example:
The agent will:
  • Download and validate the image
  • Extract metadata (dimensions, format, EXIF)
  • Categorize it (e.g., “work/meetings”)
  • Add relevant tags
  • Save to knowledge base
  • Create searchable embeddings

Via save_image Tool

The agent can save images from URLs or base64 data:
Parameters:
  • imageUrl (optional): URL to download image from
  • imageData (optional): Base64-encoded image data
  • title (optional): Image title
  • caption (optional): Description or context
  • tags (optional): Array of tags
  • category (optional): Category (default: “photos”)
  • autoCategorize (optional): Use AI to categorize (default: false)
  • processingMode (optional): “lightweight” or “full” AI processing

Image Metadata

EchOS extracts and stores comprehensive metadata:

Basic Metadata

  • Format: jpeg, png, gif, etc.
  • Dimensions: width x height in pixels
  • File Size: in bytes
  • Color Space: RGB, grayscale, etc.
  • Alpha Channel: transparency support

EXIF Data (when available)

  • Camera make/model
  • Date taken
  • GPS coordinates
  • Exposure settings
  • ISO, aperture, shutter speed
Access metadata via the note:

Searching Images

Images are searchable by:
  • Title
  • Caption
  • Tags
  • Category
Captions and descriptions are embedded for semantic search:

Filtering

AI Categorization

When autoCategorize: true, the agent:

Lightweight Mode

  • Suggests category based on title/caption
  • Generates relevant tags

Full Mode

  • Category and tags (as above)
  • Gist (one-line summary)
  • Detailed analysis
Example output:

Best Practices

Naming and Captions

  • Descriptive titles: “Q4 Planning Whiteboard” vs “IMG_1234”
  • Contextual captions: Add who, what, when, why
  • Consistent tagging: Use a tagging system

Organization

  • Use categories: Separate personal/work, by project, etc.
  • Tag liberally: Multiple tags help retrieval
  • Regular review: Mark as ‘read’ or ‘archived’ when processed

Performance

  • Reasonable sizes: Stay under 5MB when possible for faster processing
  • Supported formats: Prefer JPEG/PNG for photos, PNG for screenshots
  • Bulk imports: Process in batches to avoid overwhelming the system

Integration with Other Features

Linking

Images can be linked to/from other notes:

Reminders

Memory System

The agent can remember preferences:

Future Enhancements

Planned features (not yet implemented):
  • OCR: Extract text from images for searchability
  • Vision API: AI-powered image descriptions
  • Image Similarity: Find visually similar images
  • Thumbnails: Multiple sizes for faster loading
  • Compression: Automatic optimization
  • Gallery Views: Web UI for browsing images
  • Batch Operations: Tag/categorize multiple images at once
  • Face Recognition: Group photos by people (privacy-aware)

Privacy & Security

  • Local Storage: All images stored locally, never uploaded to third parties
  • Metadata Privacy: EXIF data retained but not exposed externally
  • Access Control: User authentication required
  • Encryption: Consider encrypting the knowledge directory at rest

Troubleshooting

Image Not Saving

  • Check file format is supported
  • Verify file size under 20MB
  • Ensure sufficient disk space
  • Check logs for errors

Metadata Not Extracted

  • Some formats don’t include EXIF (e.g., screenshots)
  • Web images may have stripped metadata
  • This is normal and doesn’t affect functionality

Search Not Finding Images

  • Ensure image has title or caption
  • Check tags and category are set
  • Verify embeddings are generated (requires API key)
  • Try broader search terms

Telegram Photos Not Working

  • Verify bot has file access permissions
  • Check network connectivity
  • Ensure bot token is valid
  • Try sending as file if photo fails

API Reference

save_image Tool

Image Metadata Schema

Storage Schema

Examples

Save from URL

Organize Existing Images

Search and Retrieve

Batch Processing