{"id":27104407,"url":"https://github.com/funkatron/veruca","last_synced_at":"2025-10-16T15:36:52.140Z","repository":{"id":284143220,"uuid":"947465095","full_name":"funkatron/veruca","owner":"funkatron","description":"Using LLMs to create a personal prosthetic environment","archived":false,"fork":false,"pushed_at":"2025-03-17T23:46:32.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T05:33:35.687Z","etag":null,"topics":["llm"],"latest_commit_sha":null,"homepage":"https://funkatron.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funkatron.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-12T18:19:41.000Z","updated_at":"2025-03-18T02:05:56.000Z","dependencies_parsed_at":"2025-03-24T11:50:14.136Z","dependency_job_id":"b59e1f5a-fa9e-48d0-bef1-8baee1ef4c47","html_url":"https://github.com/funkatron/veruca","commit_stats":null,"previous_names":["funkatron/veruca"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkatron%2Fveruca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkatron%2Fveruca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkatron%2Fveruca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkatron%2Fveruca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funkatron","download_url":"https://codeload.github.com/funkatron/veruca/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247524353,"owners_count":20952874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llm"],"created_at":"2025-04-06T17:34:38.168Z","updated_at":"2025-10-16T15:36:52.135Z","avatar_url":"https://github.com/funkatron.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Veruca\n\nA tool for searching and querying Obsidian notes using local language models.\n\n## What is Veruca?\n\nVeruca is a command-line tool that enables you to:\n- Search your Obsidian notes using natural language queries\n- Filter results based on metadata and tags\n- Process and index your notes locally\n- Maintain privacy by running entirely on your machine\n\n## Getting Started\n\n### 1. Install Ollama\n\nFirst, you need to install Ollama, which runs the language models locally:\n- Visit [ollama.com/download](https://ollama.com/download)\n- Download and install Ollama for your system\n- After installation, run:\n  ```bash\n  ollama pull nomic-embed-text  # For embeddings\n  ollama pull llama2           # For query responses\n  ```\n\n### 2. Install Veruca\n\n```bash\n# Clone the repository\ngit clone https://github.com/funkatron/veruca.git\ncd veruca\n\n# Create a virtual environment (like a clean workspace)\npython -m venv venv\n\n# Activate the virtual environment\n# On Mac/Linux:\nsource venv/bin/activate\n# On Windows:\nvenv\\Scripts\\activate\n\n# Install Veruca\npip install -e .\n```\n\n## Using Veruca\n\nVeruca provides a simple command-line interface with three main actions:\n\n### 1. Query Your Vault\n\nSearch your Obsidian notes using natural language:\n\n```bash\nveruca query \"What are my active projects?\" --filter status=active\n```\n\nOptions:\n- `query`: Your question (required)\n- `--vault-path`: Path to your Obsidian vault (default: ~/Obsidian)\n- `--filter`: Filter by metadata (e.g., 'tags=python,status=active')\n- `--model`: Language model to use (default: llama2)\n\n### 2. Index Your Vault\n\nCreate or update the search index for your vault:\n\n```bash\nveruca index --vault-path ~/my-vault\n```\n\nOptions:\n- `--vault-path`: Path to your Obsidian vault (default: ~/Obsidian)\n- `--model`: Embedding model to use (default: nomic-embed-text)\n\n### 3. Manage Ollama Server\n\nControl the Ollama server that runs the language models:\n\n```bash\n# Check server status\nveruca ollama status\n\n# Start the server\nveruca ollama start\n\n# Stop the server\nveruca ollama stop\n```\n\n## How It Works\n\nVeruca processes your notes in several steps:\n\n1. **Document Processing**\n   - Reads your Obsidian markdown files\n   - Extracts metadata, tags, and links\n   - Processes Obsidian-specific features\n\n2. **Indexing**\n   - Splits documents into manageable chunks\n   - Generates embeddings using nomic-embed-text\n   - Stores vectors in a local database\n\n3. **Querying**\n   - Converts your question into embeddings\n   - Finds similar content in the vector store\n   - Filters results based on metadata\n   - Generates responses using llama2\n\n## Features\n\n- Works with Obsidian features:\n  - Internal links (`[[filename]]` and `[[filename|display text]]`)\n  - Frontmatter (YAML metadata)\n  - Tags (`#tag` and nested tags `#tag/subtag`)\n  - Callouts (admonitions)\n- Everything runs locally on your computer\n- No data is sent to the cloud\n- Command-line interface\n\n## Need Help?\n\nIf you run into any issues:\n1. Check if Ollama is running (`veruca ollama status`)\n2. Make sure your Obsidian vault path is correct\n3. Try a simple query first to test\n4. Ensure you have the required models pulled (`nomic-embed-text` and `llama2`)\n\n## Contributing\n\nWant to help improve Veruca? Great! Here's how:\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Submit a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunkatron%2Fveruca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunkatron%2Fveruca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunkatron%2Fveruca/lists"}