This project is in early development. Many features are incomplete, and accuracy and performance of semantic analysis require significant improvement.
Note: A more functional proof-of-concept implementation is available in Python at sema-py. The Python version benefits from better GPU acceleration support for model inference, whereas this Rust implementation is currently limited by available ML runtime libraries.
Managing large collections of knowledge scattered across your system is challenging. Whether you have research papers, books, documentation, or notes spread across different folders, finding specific information often requires either:
- Manually browsing through directories hoping to locate the right file
- Using basic search tools that only match exact keywords, missing conceptually related content
- Remembering precise wording from documents you read weeks or months ago
Sema addresses this by enabling natural language queries that find semantically relevant content across your entire knowledge base.
Sema is a semantic search tool that understands the meaning behind your queries rather than just matching keywords. It allows you to search your personal collection of documents, code, and notes using natural questions and concepts.
Literature and books:
- "What did Aristotle say about friendship?"
- "How do science fiction authors approach time travel?"
- "What strategies did Napoleon use in the Russian campaign?"
Research and documentation:
- "Best practices for user authentication"
- "How does overfitting work in machine learning?"
- "What caused the 2008 financial crisis?"
Technical knowledge:
- "Database optimization techniques for large datasets"
- "Common microservices communication patterns"
You can ask questions naturally without needing to remember exact phrases or terminology.
- Natural language search using semantic understanding
- Interactive terminal interface for browsing results
- File preview with automatic positioning at relevant sections
- Fast indexing and search performance
- Support for various text file formats (markdown, code, PDFs TODO, etc.)
Requirements: Rust toolchain
git clone <repository-url>
cd sema
cargo build --release
cargo install --path .Basic usage:
# Search current directory
sema
# Search specific directory
sema /path/to/your/contentNavigation:
- Type your query and press Enter
- Use arrow keys to browse results
- Press Enter to preview files
- Press Esc to return to search
- Press Ctrl+C or 'q' to exit
Sema scans your files, generates semantic embeddings using AI models, and builds a searchable index. When you submit a query, it finds content that matches the conceptual meaning rather than just exact keyword matches.
Settings can be customized in ~/.sema/config.toml.
MIT License - see LICENSE.md for details.