Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Supported Ecosystems

ManifestKindWorkspace support
package.jsonnpmworkspace: protocol versions normalized
go.modgogo.work member metadata
go.workgouse directives parsed for workspace context
Cargo.tomlcargoworkspace = true deps resolved from root
pyproject.tomlpython
pom.xmlmavenParent POM inheritance (groupId, version)
build.gradle / build.gradle.ktsgradlesettings.gradle project inclusion
cpanfileperlrequires / on 'test' blocks
Gemfilerubygem / group :test blocks
flake.nixnixinputs attrset (dotted and block forms)

Symbol extraction

Shire extracts public symbols (functions, classes, types, methods, interfaces) from source files using tree-sitter, with full signatures, parameters, and return types.

LanguageExtractor
TypeScript / JavaScripttree-sitter
Gotree-sitter
Rusttree-sitter
Pythontree-sitter
Javatree-sitter
Kotlintree-sitter
Darttree-sitter
Protobuftree-sitter
Ctree-sitter
C++tree-sitter
C#tree-sitter
Swifttree-sitter
PHPtree-sitter
Scalatree-sitter
Zigtree-sitter
Bash / Shelltree-sitter
Rtree-sitter
Haskelltree-sitter
YAMLtree-sitter
SQLtree-sitter
HCL / Terraformtree-sitter
TOMLtree-sitter
Perltree-sitter
Rubytree-sitter
OCamltree-sitter
Luatree-sitter
Elixirtree-sitter
Clojuretree-sitter
Erlangtree-sitter
Juliatree-sitter
Gleamtree-sitter
Odintree-sitter
Nixtree-sitter
Nimtree-sitter
COBOLregex-based

Reference extraction

Shire extracts cross-references (calls, type references, imports, and interface implementations) for a subset of languages. These are stored in the symbol_refs table and exposed via the symbol_references, symbol_callers, and symbol_callees MCP tools.

LanguageCallTypeImportImpl
Goyesyesyes— (implicit interfaces)
Pythonyesyesyesyes
Javayesyesyesyes
TypeScriptyesyesyesyes
JavaScriptyesyesyes
Perlyesyes
Rubyyesyesyesyes
Scalayesyesyesyes

All other languages: symbol definitions only; references are not extracted.