A TypeScript preflight and architecture-alignment tool that shows interfaces, types, signatures, exports, and wiring instead of full source code.
showme is a smarter way to work in TypeScript projects. Instead of dumping implementation files, it extracts the interface layer — types, signatures, imports, exports, services, and module boundaries — so you can plan, edit, refactor, and review against the API surface before diving into how the code works.
Use it before major planning, multi-file edits, refactors, architecture explanations, or large source reads. Re-run it after substantial changes to verify that signatures, exports, and boundaries still match the intended design.
Typical flow:
showme src --kind signaturesThen use the API surface to decide which files actually need deeper reading.
Default posture: narrow by source path first, then by --kind, then by --filter only if needed.
- Preflighting a TypeScript task before planning, editing, or refactoring.
- Understanding project architecture, service boundaries, dependencies, layers, and exports.
- Reviewing services, schemas, signatures, types, or public API shape before reading implementation.
- Re-checking architecture after substantial changes so later edits stay aligned.
- Preparing compact context before editing, explaining, or handing code to an agent.
- Summarizing a package API without getting lost in implementation details.
declarations— raw compiler-generated.d.tsoutput.signatures— class and function signatures.interfaces— interface declarations.types— type aliases.variables— exported variables and constants.imports/exports— module boundaries.
The default all mode combines the structured kinds above.
npm install -g @effect-x/showmeOr run without installing:
npx @effect-x/showme --helpIf you use opencode or another agent framework with local skills, copy the skill from this repo into your agent skill directory. Treat the copy under this repo as the source of truth, then sync it into your local agent skills after each change.
For example:
mkdir -p ~/.agents/skills/architecture-preflight
cp skills/architecture-preflight/SKILL.md ~/.agents/skills/architecture-preflight/SKILL.mdTo improve invocation frequency, also add a short hint to your project's
AGENTS.md telling the agent to use architecture-preflight before major
TypeScript planning, multi-file edits, refactors, architecture explanations, or
large source reads, and to rerun it after substantial changes.
This matters because many agent systems initially see only a skill's name and
description. A matching hint in AGENTS.md significantly increases the chance
that the skill is loaded early and reused throughout the task.
- Before any TypeScript planning, multi-file edit, refactor, or architecture question, load the
architecture-preflightskill first. Re-run it after substantial changes to verify alignment.- Trigger on: definitions, types, signatures, exports, services, layers, schemas, wiring, module boundaries, or broad source reading.
- Posture: inspect declarations/signatures first, then narrow to implementation files only as needed.
showme [flags] <sources...>If no source is provided, showme scans the current directory.
Show compact signatures for the current project:
showmeShow declarations for a package folder:
showme packages/core --kind declarationsOnly include specific files:
showme . --filter "src/**/*.ts" --filter "!**/*.test.ts"Select multiple structure kinds:
showme src --kind signatures --kind interfaces --kind typesWrite Markdown output for sharing:
showme src --format markdown --output showme.mdEmit source line comments before entries:
showme src --line| Flag | Description |
|---|---|
--kind <kind> |
Structure kind(s), repeatable. Supported values: all, declarations, signatures, interfaces, types, variables, imports, exports. |
--filter <glob> |
File path filter glob(s), repeatable. |
--output <file> |
Write output to a file instead of stdout. |
--line |
Emit source line comments before entries when source maps are available. |
--format <format> |
Output format: plain or markdown. |
--help |
Show help information. |
--version |
Show package version. |
- Resolve source paths to project scopes and
tsconfigfiles. - Run
tsgowith declaration-only output intonode_modules/.cache/showme-dts. - Read generated
.d.tsfiles and declaration maps. - Filter by target paths and
--filterglobs. - Format the requested structure kinds.
You can override the TypeScript Go binary with the TSGO environment variable, for example:
TSGO=/path/to/tsgo showme src
- Node.js
>=24 - A TypeScript project with a usable
tsconfigis recommended.
This repository uses Bun for local development.
bun install
bun run check
bun run build
bun run pack:checkUseful scripts:
bun run dev- build in watch mode.bun run test- run tests.bun run typecheck- runtsgo --noEmit.bun run format- format files withoxfmt.bun run pack:check- inspect the npm tarball withnpm pack --dry-run.
The package is published to npm as @effect-x/showme with public access and npm provenance enabled.
bun run changeset
bun run version-packages
bun run releaseThe GitHub Actions release workflow runs the full check pipeline and uses Changesets to create release pull requests or publish from main.
MIT