
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
quackstack
Advanced tools
Your cracked unpaid intern for all things codebase related! AI-powered codebase search and Q&A.
Your cracked unpaid intern for all things codebase related!
QuackStack is an interactive CLI tool that indexes your codebase using local AI embeddings and lets you ask questions about it conversationally. Perfect for understanding unfamiliar code, onboarding to new projects, or giving your AI coding assistant persistent context.
Check out the QuackStack Live demo here!
quack in any project directoryCheck out the Frontend Repo here
npm install -g quackstack
# or
pnpm add -g quackstack
git clone https://github.com/woustachemax/quackstack.git
cd quackstack
pnpm install
pnpm build
.env in your project root# REQUIRED: Database for storing code embeddings
QUACKSTACK_DATABASE_URL=postgresql://user:pass@host:port/dbname
# REQUIRED: Choose ONE AI provider for conversational answers
# (Embeddings are computed locally - no API calls!)
# Option 1: OpenAI (RECOMMENDED)
QUACKSTACK_OPENAI_KEY=sk-...
# Option 2: Anthropic Claude
QUACKSTACK_ANTHROPIC_KEY=sk-ant-...
# Option 3: Google Gemini (has free tier!)
QUACKSTACK_GEMINI_KEY=AIza...
# Option 4: DeepSeek (cheapest option)
QUACKSTACK_DEEPSEEK_KEY=sk-...
# Option 5: Mistral AI
QUACKSTACK_MISTRAL_KEY=...
npx prisma generate
npx prisma db push
quack
# Answer appears with context
# Press Ctrl+C to exit
quack --context
# Creates context files for:
# - Cursor (.cursorrules)
# - Windsurf (.windsurfrules)
# - Cline (.clinerules)
# - Continue (.continue/context.md)
# - Aider (.aider.conf.yml)
# Your AI coding assistants automatically read these files!
quack --watch
# Watches for file changes
# Auto-regenerates all context files
# Keep running in background during development
quack --reindex
# Clears old index and re-scans entire codebase
$ quack
Welcome to QuackStack! 🐥
🔍 Indexing your codebase (this may take a moment)...
✅ Indexing complete!
💡 Tip: Press Ctrl+C to exit
🐥 Quack! How can I help? > how does the search function work?
The search function uses local embeddings to convert your query into a vector,
compares it against stored code embeddings using cosine similarity, ranks results,
and feeds the top matches to the AI for a conversational answer.
Implementation is in src/commands/search.ts
💡 Want more details? (y/n) > y
📚 Relevant Code:
[1] src/commands/search.ts (relevance: 87.3%)
export async function search(query: string, projectName: string) {
const snippets = await client.codeSnippet.findMany({
where: { projectName },
});
// ... cosine similarity ranking ...
}
🐥 Quack! How can I help? > where are embeddings generated?
Embeddings are generated locally using the local-embeddings module.
No API calls are made for vector generation, keeping your code private.
💡 Want more details? (y/n) > n
🐥 Quack! How can I help? > ^C
👋 Happy coding!
node_modules, .git, etc.)| Command | Description |
|---|---|
quack | Start interactive REPL (auto-indexes first time) |
quack --context | Generate context files for ALL AI coding tools |
quack --watch | Watch mode - auto-update context on file changes |
quack --reindex | Force reindex the entire codebase |
quack --cursor | [DEPRECATED] Use --context instead |
| Provider | Used For | Cost | Privacy | Setup |
|---|---|---|---|---|
| Local | Embeddings | FREE | 🔒 100% Private | Built-in |
| OpenAI | Chat answers | $$ | Query only | Get key |
| Anthropic | Chat answers | $$$ | Query only | Get key |
| Gemini | Chat answers | FREE | Query only | Get key |
| DeepSeek | Chat answers | $ | Query only | Get key |
| Mistral | Chat answers | $$ | Query only | Get key |
Privacy Note: QuackStack generates embeddings locally on your machine. Only your natural language queries and retrieved code context are sent to the AI provider for generating conversational answers. Your entire codebase is never sent to any API.
model codeSnippet {
id Int @id @default(autoincrement())
content String
embedding Json // Stored as JSON array of numbers
filePath String
projectName String
language String?
functionName String?
lineStart Int?
lineEnd Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([projectName])
}
Each project is isolated by projectName (uses current directory name).
JavaScript, TypeScript, Python, Go, Rust, Java, C, C++, C#, Ruby, PHP, Swift, Kotlin, Scala, R, Vue, Svelte
git clone https://github.com/woustachemax/quackstack.git
cd quackstack
pnpm install
pnpm build
# Run locally
node dist/cli.cjs
node dist/cli.cjs --context
node dist/cli.cjs --watch
Contributions welcome! Feel free to:
MIT
Privacy First: Embeddings are generated locally - your code never leaves your machine during indexing.
Gemini Free Tier: Start with Google Gemini for chat responses - it's free and works great for most use cases.
Universal Context: Run quack --context once to generate context files for ALL major AI coding tools at once.
Background Watcher: Run quack --watch & in the background to keep context always fresh across all your AI tools.
Multiple Projects: Each project gets its own namespace in the database. Just run quack in different directories.
Large Codebases: First index might take a few minutes. After that, only changed files are re-indexed.
No Vendor Lock-in: Unlike other tools, QuackStack works with Cursor, Windsurf, Cline, Continue, and Aider - choose your favorite!
FAQs
Your cracked unpaid intern for all things codebase related! AI-powered codebase search and Q&A.
We found that quackstack demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.