Giddyanne¶
Find code by meaning, not keywords. Completely offline.
Search your codebase the way you think about it: "authentication logic", "date formatting", "API error handling". Giddyanne understands what you mean and finds the right code—even if it uses different words.
giddy find "authentication logic"
> src/auth/login.py:45-67 (0.89)
> def verify_user_credentials(username, password):
Why Giddyanne?¶
Private – Your code never leaves your machine. No cloud APIs, no data collection, no privacy concerns.
Fast – Search happens in milliseconds after initial indexing. Pre-computed embeddings mean instant results.
Local – Runs entirely on your hardware using sentence-transformers. No internet required, no API keys, no rate limits.
Smart – Semantic search understands intent. "Where do I format dates?" finds formatTimestamp() even though the words don't match.
Integrated - Works where you work. VSCode, Emacs, CLI, MCP for AI assistants, or HTTP API for custom workflows.
v1.5.0 · Changelog
How It Works¶
- Index once – Giddyanne scans your project and creates embeddings for every code chunk
- Search semantically – Query in natural language to find relevant code by meaning
- Stay in sync – File watcher automatically re-indexes when code changes
Unlike GitHub Copilot or cloud-based code search, everything runs locally. Unlike grep or ripgrep, it understands semantic meaning. You get the best of both worlds: powerful semantic search with complete privacy.
Quickstart¶
git clone --depth 1 --branch v1.5.0 https://github.com/upship-ai/giddyanne.git
cd giddyanne && make install
Then in any git repo:
# Search semantically (auto-starts server, no config needed)
giddy find "error handling for API calls"
> src/api/client.py:123-145 (0.76)
> def handle_request_error(response):
# Check what's indexed
giddy health
> Indexed files: 28
> Total chunks: 288
> Index size: 3.85 MB
# Stop the server
giddy down
Works out of the box in any git repo. For better results, add a .giddyanne.yaml config with path descriptions — see Configuration or run giddy init.
Real-World Examples¶
| You search for... | It finds... |
|---|---|
| "authentication logic" | verify_credentials(), check_auth_token(), login_handler() |
| "format dates" | formatTimestamp(), parseDateTime(), dateToString() |
| "database queries" | SQL functions, ORM calls, query builders |
| "error handling" | try/catch blocks, error handlers, exception classes |
The search understands synonyms, related concepts, and programming patterns—not just exact text matches.
Use Cases¶
- Onboarding: New to a codebase? Search "how does authentication work" to find all related code
- Refactoring: Find all similar implementations across your project
- Code review: Quickly locate relevant context for a change
- Documentation: Search by concept, not by memorizing function names
- Learning: Explore unfamiliar codebases by searching for what they do, not what they're named
Integrations¶
| Integration | Use it for... |
|---|---|
| CLI | Terminal-based search and server management |
| Emacs | Search directly from your editor |
| VSCode | Extension with inline search |
| MCP | AI assistants can search your codebase |
| HTTP API | Build your own integrations |
See Integrations for setup instructions.
Supported Languages¶
Only files with supported extensions are indexed. Code is split at natural boundaries (functions, classes) for better search results.
Programming: C, C++, C#, Dart, Elixir, Go, Java, JavaScript, Kotlin, Lua, Objective-C, PHP, Python, R, Ruby, Rust, Scala, Shell, SQL, Swift, TypeScript, Zig
Markup & config: CSS, HTML, JSON, Markdown, TOML, YAML
Files matching .gitignore patterns are automatically excluded.
FAQ¶
Q: How does this compare to GitHub Copilot? A: Copilot generates code using cloud APIs. Giddyanne searches existing code completely offline. They solve different problems.
Q: Why not just use grep?
A: Grep matches exact text. If you search for "auth" you won't find verify_credentials(). Semantic search finds code by meaning.
Q: Does it work with large codebases? A: Yes. Indexing is a one-time cost (with incremental updates). After that, searches are near-instant regardless of codebase size.
Q: What about API keys? A: None needed. Sentence-transformers runs locally on your CPU. No external services, no usage limits.
Q: Will this slow down my machine? A: Initial indexing uses CPU for embedding generation. After that, the search server is lightweight and only re-indexes changed files. If you run multiple projects, a shared embedding server loads the model once (~700MB) and all project servers share it (~180MB each).
License¶
MIT License - see LICENSE.txt
Contributing¶
Contributions welcome! See Contributing for development setup and areas where we'd love help.