grepai-storage-gob
Configure GOB local file storage for GrepAI. Use this skill for simple, single-machine setups.
What this skill does
# GrepAI Storage with GOB
This skill covers using GOB (Go Binary) as the storage backend for GrepAI, the default and simplest option.
## When to Use This Skill
- Single developer projects
- Small to medium codebases
- Simple setup without external dependencies
- Local development environments
## What is GOB Storage?
GOB is Go's native binary serialization format. GrepAI uses it to store:
- Vector embeddings
- File metadata
- Chunk information
Everything is stored in a single local file.
## Advantages
| Benefit | Description |
|---------|-------------|
| ๐ **Simple** | No external services needed |
| โก **Fast setup** | Works immediately |
| ๐ **Portable** | Single file, easy to backup |
| ๐ฐ **Free** | No infrastructure costs |
| ๐ **Private** | Data stays local |
## Limitations
| Limitation | Description |
|------------|-------------|
| ๐ **Scalability** | Not ideal for very large codebases |
| ๐ค **Single user** | No concurrent access |
| ๐ **No sharing** | Can't share index across machines |
| ๐พ **Memory** | Loads into RAM for searches |
## Configuration
### Default Configuration
GOB is the default backend. Minimal config:
```yaml
# .grepai/config.yaml
store:
backend: gob
```
### Explicit Configuration
```yaml
store:
backend: gob
# Index stored in .grepai/index.gob (automatic)
```
## Storage Location
GOB storage creates files in your project's `.grepai/` directory:
```
.grepai/
โโโ config.yaml # Configuration
โโโ index.gob # Vector embeddings
โโโ symbols.gob # Symbol index for trace
```
## File Sizes
Approximate `.grepai/index.gob` sizes:
| Codebase | Files | Chunks | Index Size |
|----------|-------|--------|------------|
| Small | 100 | 500 | ~5 MB |
| Medium | 1,000 | 5,000 | ~50 MB |
| Large | 10,000 | 50,000 | ~500 MB |
## Operations
### Creating the Index
```bash
# Initialize project
grepai init
# Start indexing (creates index.gob)
grepai watch
```
### Checking Index Status
```bash
grepai status
# Output:
# Index: .grepai/index.gob
# Files: 245
# Chunks: 1,234
# Size: 12.5 MB
# Last updated: 2025-01-28 10:30:00
```
### Backing Up the Index
```bash
# Simple file copy
cp .grepai/index.gob .grepai/index.gob.backup
```
### Clearing the Index
```bash
# Delete and re-index
rm .grepai/index.gob
grepai watch
```
### Moving to a New Machine
```bash
# Copy entire .grepai directory
cp -r .grepai /path/to/new/location/
# Note: Only works if using same embedding model
```
## Performance Considerations
### Memory Usage
GOB loads the entire index into RAM for searches:
| Index Size | RAM Usage |
|------------|-----------|
| 10 MB | ~20 MB |
| 50 MB | ~100 MB |
| 500 MB | ~1 GB |
### Search Speed
GOB provides fast searches for typical codebases:
| Codebase Size | Search Time |
|---------------|-------------|
| Small (100 files) | <50ms |
| Medium (1K files) | <200ms |
| Large (10K files) | <1s |
### When to Upgrade
Consider PostgreSQL or Qdrant when:
- Index exceeds 1 GB
- Need concurrent access
- Want to share index across team
- Codebase has 50K+ files
## .gitignore Configuration
Add `.grepai/` to your `.gitignore`:
```gitignore
# GrepAI (machine-specific index)
.grepai/
```
**Why:** The index is machine-specific because:
- Contains binary embeddings
- Tied to the embedding model used
- Each machine should generate its own
## Sharing Index (Not Recommended)
While you can copy the index file, it's not recommended because:
1. Must use identical embedding model
2. File paths are absolute
3. Different machines may have different code versions
**Better approach:** Each developer runs their own `grepai watch`.
## Migrating to Other Backends
### To PostgreSQL
1. Update config:
```yaml
store:
backend: postgres
postgres:
dsn: postgres://user:pass@localhost:5432/grepai
```
2. Re-index:
```bash
rm .grepai/index.gob
grepai watch
```
### To Qdrant
1. Update config:
```yaml
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
```
2. Re-index:
```bash
rm .grepai/index.gob
grepai watch
```
## Common Issues
โ **Problem:** Index file too large
โ
**Solution:** Add more ignore patterns or migrate to PostgreSQL/Qdrant
โ **Problem:** Slow searches on large codebase
โ
**Solution:** Migrate to Qdrant for better performance
โ **Problem:** Corrupted index
โ
**Solution:** Delete and re-index:
```bash
rm .grepai/index.gob .grepai/symbols.gob
grepai watch
```
โ **Problem:** "Index not found" error
โ
**Solution:** Run `grepai watch` to create the index
## Best Practices
1. **Use for small/medium projects:** Up to ~10K files
2. **Add to .gitignore:** Don't commit the index
3. **Backup before major changes:** Copy index.gob before experiments
4. **Re-index after model changes:** If you change embedding models
5. **Monitor file size:** Migrate if index exceeds 1GB
## Output Format
GOB storage status:
```
โ
GOB Storage Configured
Backend: GOB (local file)
Index: .grepai/index.gob
Size: 12.5 MB
Contents:
- Files: 245
- Chunks: 1,234
- Vectors: 1,234 ร 768 dimensions
Performance:
- Search latency: <100ms
- Memory usage: ~25 MB
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.