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
Image Storage Architecture
Three-Layer Storage
Like all content in EchOS, images use a three-layer storage architecture:- Original File: Stored in
knowledge/image/{category}/{hash}.{ext} - Markdown Note: Stored in
knowledge/note/{category}/{date}-{slug}.md - SQLite Index: Metadata for fast retrieval and search
- 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:- Simple: Just send the photo - it will be saved automatically
- With Caption: Add a caption for context
- Auto-Categorization: The agent will categorize it based on content
- 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:imageUrl(optional): URL to download image fromimageData(optional): Base64-encoded image datatitle(optional): Image titlecaption(optional): Description or contexttags(optional): Array of tagscategory(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
Searching Images
Text Search
Images are searchable by:- Title
- Caption
- Tags
- Category
Semantic Search
Captions and descriptions are embedded for semantic search:Filtering
AI Categorization
WhenautoCategorize: 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
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