askcode

Index codebases into a local SQLite database of functions, classes, imports, variables, and call graphs.

Updated Jan 27, 2026
One-click install
npx skills add https://github.com/carbonscott/deploy-opencode --skill askcode
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: askcode
Source: https://github.com/carbonscott/deploy-opencode/tree/main/claude/skills/askcode
Command: npx skills add https://github.com/carbonscott/deploy-opencode --skill askcode

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps developers index and navigate large codebases by creating a structured, searchable database of code elements.

Core Features & Use Cases

  • Indexes functions, classes, imports, variables, and call graphs from Python, C, and C++ codebases into an SQLite database.
  • Provides SQL-based queries to explore code structure, find callers/callees, navigate architecture, and analyze dependencies across modules.
  • Use Case: When you need to quickly locate where a function is defined or understand impact of a change across a multi-language repository.

Quick Start

Source the environment and run tsdb against your repository to build the index.

Frequently Asked Questions about askcode

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I index a multi-language codebase to find function definitions and call graphs?

To index a multi-language codebase for functions and call graphs, you can build a local SQLite database by loading the tree-sitter-db environment and invoking tsdb on your target repository. This extracts code structure into searchable SQL tables.

Can I analyze Python, C, and C++ codebases together in a single SQLite database?

Yes, you can analyze Python, C, and C++ codebases together by indexing them into a single local SQLite database. The tool uses tree-sitter to parse multiple languages, allowing cross-language architecture navigation and dependency analysis.

What is the best way to navigate code architecture and understand the impact of a change across modules?

The best way to navigate code architecture and understand change impact is by querying an indexed SQLite database of your codebase. It stores functions, classes, imports, and call graphs, enabling SQL-based exploration of dependencies across modules.

How does tree-sitter code indexing work for finding callers and callees?

Tree-sitter code indexing works by parsing source code into syntax trees and extracting functions, classes, imports, and variables into a local SQLite database. You then use SQL queries to find callers and callees by traversing the stored call graphs.

Do I need to source the tree-sitter-db environment before running tsdb on my repository?

Yes, you need to source the tree-sitter-db environment before running tsdb on your repository. Sourcing the environment ensures the required parsing tools are available to build the SQLite index of functions, classes, and call graphs.

What are the limitations of using SQLite for code navigation and call graph analysis?

A limitation of using SQLite for code navigation is that it requires building a local database index first, meaning it reflects the codebase state at index time rather than real-time. It currently supports Python, C, and C++ codebases.