plugins/vector-db/skills/vector-db-launch/SKILL.md
Start the Native Python ChromaDB background server. Use when semantic search returns connection refused on port 8110, or when the user wants to enable concurrent agent read/writes.
npx skillsauth add richfrem/agent-plugins-skills vector-db-launchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill requires Python 3.8+ and standard library only. No external packages needed.
To install this skill's dependencies:
pip-compile ./requirements.in
pip install -r ./requirements.txt
See ./requirements.txt for the dependency lockfile (currently empty — standard library only).
ChromaDB provides the vector database backend for semantic search. If configured for Option C (Native Server) in vector_profiles.json, the database must be running as a background HTTP service to be accessed by operations.py.
127.0.0.1:8110vector-db-init# Check if ChromaDB is already running
curl -sf http://127.0.0.1:8110/api/v1/heartbeat > /dev/null && echo "✅ ChromaDB running" || echo "❌ ChromaDB not running"
If it prints "✅ ChromaDB running", you're done. If not, proceed.
The ChromaDB server runs as a background Python process.
It binds to the ${chroma_host}:${chroma_port} defined in your active profile inside .agent/learning/vector_profiles.json (defaults to 127.0.0.1:8110). Its data volume is mounted from the path defined by the profile's ${chroma_data_path}.
Instruct the user to start the server as a background process using nohup or & so it does not block their terminal. Example:
chroma run --host 127.0.0.1 --port 8110 --path .vector_data &
After the user confirms the server is running, verify it via API:
curl -sf http://127.0.0.1:8110/api/v1/heartbeat
It should return a JSON response containing a timestamp {"nanosecond heartbeat": ...}.
| Symptom | Fix |
|---------|-----|
| chroma: command not found | The user hasn't run the vector-db-init skill yet. Run it to pip install chromadb. |
| Port 8110 already in use | Another process (or zombie chroma process) is using the port. lsof -i :8110 to find and kill it. |
| Permission Denied for data directory | Ensure the user has write access to the .vector_data directory. |
If the user decides they do not want to run a background server, you can instruct them to set chroma_host to an empty string "" in their profile in .agent/learning/vector_profiles.json.
The operations.py library will automatically fallback to "Option A" (PersistentClient) and initialize the database locally inside the python process without needing this skill.
tools
Ingests repository files into the ChromaDB vector store. Builds or updates the vector index from a manifest or directory scan using ingest.py. Use when new files need to be indexed or the vector store is out of date. <example> user: "Index these new plugin files into the vector database" assistant: "I'll use vector-db-ingest to add them to the vector store." </example> <example> user: "The vector store is missing recent files -- update it" assistant: "I'll use vector-db-ingest to re-index the changes." </example>
data-ai
Removes stale and orphaned chunks from the ChromaDB vector store for files that have been deleted or renamed. Use after files are removed or moved to keep the vector index in sync with the filesystem. <example> user: "Clean up the vector store after I deleted some files" assistant: "I'll use vector-db-cleanup to remove orphaned chunks." </example> <example> user: "The vector database has chunks for files that no longer exist" assistant: "I'll run vector-db-cleanup to prune them." </example>
testing
Audit Vector DB coverage -- compares the live filesystem manifest against the ChromaDB index to identify coverage gaps.
development
3-Phase Knowledge Search strategy for the RLM Factory ecosystem. Auto-invoked when tasks involve finding code, documentation, or architecture context in the repository. Enforces the optimal search order: RLM Summary Scan (O(1)) -> Vector DB Semantic Search -> Grep/Exact Match. Never skip phases.