Semantic codebase search

Your grep can't find
what it doesn't understand.

Giddyanne indexes the meaning of your code, not just text patterns. Search the way you think — completely offline, completely private.

100% Local & Private Open Source (MIT) v1.6.0
$ 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):

grep / ripgrep

$ rg "auth"
437 matches across 89 files
...good luck.

giddyanne

$ giddy find "authentication logic"
src/auth/login.py (0.89)
src/middleware/session.py (0.82)
src/api/tokens.py (0.76)

How It Works

1

Index

Scans your project, splits code at function and class boundaries, and creates embeddings for every chunk.

2

Search

Query in natural language. Hybrid search combines semantic understanding with keyword matching.

3

Stay in sync

File watcher re-indexes changed files automatically. No manual rebuilds, no stale results.

Get started in 30 seconds

# 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

Ready to search smarter?

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.

Private

Your code never leaves your machine. No cloud APIs, no data collection, no telemetry.

Fast

Millisecond searches after initial indexing. Pre-computed embeddings mean instant results.

Offline

Runs entirely on your hardware using local models. No internet, no API keys, no rate limits.

Smart

Understands intent. "Where do I format dates?" finds formatTimestamp() even when the words don't match.

Integrated

CLI, Emacs, VSCode, MCP for AI assistants, or HTTP API for custom workflows.

Live

File watcher re-indexes on save. Your search results stay current without manual rebuilds.