Semantic codebase search
Giddyanne indexes the meaning of your code, not just text patterns. Search the way you think — completely offline, completely private.
$ giddy find "authentication logic" src/auth/login.py:45-67 (0.89) def verify_user_credentials(username, password): hashed = bcrypt.hash(password, user.salt) return secrets.compare_digest(hashed, user.password) src/middleware/session.py:12-38 (0.82) class AuthenticationMiddleware: async def __call__(self, request, call_next):
$ rg "auth" 437 matches across 89 files ...good luck.
$ giddy find "authentication logic" src/auth/login.py (0.89) src/middleware/session.py (0.82) src/api/tokens.py (0.76)
Scans your project, splits code at function and class boundaries, and creates embeddings for every chunk.
Query in natural language. Hybrid search combines semantic understanding with keyword matching.
File watcher re-indexes changed files automatically. No manual rebuilds, no stale results.
# Install $ git clone --depth 1 --branch v1.6.0 \ https://github.com/upship-ai/giddyanne.git $ cd giddyanne && make install # Search any git repo — no config needed $ giddy find "error handling"
Works out of the box in any git repo. Add a .giddyanne.yaml for optional path descriptions that improve search relevance.
$ giddy -h giddy - Semantic code search CLI Usage: giddy find <query> [options] Run semantic search giddy up [options] Start the server giddy down Stop the server giddy bounce [options] Restart the server giddy status Server status giddy health [options] Diagnostic information giddy sitemap [options] List indexed files giddy log Stream server logs giddy init Print setup prompt for new projects giddy install Download embedding model (~90MB) giddy mcp Run MCP server (for Claude Code) giddy embed <start|stop|status> Manage shared embedding server giddy drop Remove search index giddy clean [options] Remove all .giddyanne data giddy completion <shell> Generate shell completions
Get set up in under a minute. No accounts, no API keys, no cloud.
Every command abbreviates — giddy f for find, giddy st for status.
Your code never leaves your machine. No cloud APIs, no data collection, no telemetry.
Millisecond searches after initial indexing. Pre-computed embeddings mean instant results.
Runs entirely on your hardware using local models. No internet, no API keys, no rate limits.
Understands intent. "Where do I format dates?" finds formatTimestamp() even when the words don't match.
CLI, Emacs, VSCode, MCP for AI assistants, or HTTP API for custom workflows.
File watcher re-indexes on save. Your search results stay current without manual rebuilds.