Semantic Memory Index Commander – a CLI and REPL tool for managing semantic memory systems.
smictl allows developers and researchers to interactively configure, test, and populate vector-based semantic memory backends using embedding models and raw text sources.
- REPL and direct CLI modes
- Pluggable backends (e.g., Redis, Pinecone, Weaviate)
- Selectable embedding models (OpenAI, Hugging Face, etc.)
- File-based source ingestion for embedding
- Clean, idiomatic Rust architecture
| Term | Meaning |
|---|---|
backend |
Semantic memory store (e.g., Redis, Pinecone, Weaviate) |
embedder |
Embedding model + configuration (e.g., text-embedding-3-small) |
source |
Raw data to be embedded (e.g., text file, document) |
smictl backend list
smictl backend select redis
smictl embedder list
smictl embedder select openai/ada
smictl source select ./docs/example.md
smictl source generate-embeddings
smictl source storesmictlOnce inside:
smictl> backend list
smictl> embedder select openai/ada
smictl> source select ./notes.txt
smictl> source generate-embeddings
smictl> source store
src/
├── main.rs # CLI entrypoint
├── cli.rs # clap command parser
├── repl.rs # REPL input loop
├── session.rs # Runtime session state
└── commands/
├── mod.rs
├── backend.rs
├── embedder.rs
└── source.rs
- Integration with Redis, Pinecone, Weaviate
- Model management via OpenAI / Hugging Face APIs
- Tokenizer-aware chunking
- Batch embedding + dry-run modes
Requires:
- Rust 1.70+ (recommended)
- A working backend (Redis etc.) for full functionality
cargo build
cargo runMIT
Made with frustration and clarity.