# test-inventory > Test metadata from source code, not from test results. Lists every test declaration in a Playwright or Vitest suite as JSON, by reading the code. Nothing is run. ## Table of Contents ### Guide - [Why test-inventory](/test-inventory/guide/why.md): What the runners' lists leave out, and what test-inventory reads from the code without a run. - [Getting started](/test-inventory/guide/getting-started.md): Install test-inventory and list the tests of a Playwright or Vitest suite as JSON, without running them. - [Examples](/test-inventory/guide/examples.md): Scans of a made-up trading app in common setups, from Playwright end-to-end tests to a monorepo. - [Command line](/test-inventory/guide/cli.md): The test-inventory command, its options and exit codes, and how it finds the framework version. - [Library](/test-inventory/guide/library.md): The scan and scanSource functions, filterInventory and pickTestFields, the inventory they return and the JSON Schema of the output. - [Query recipes](/test-inventory/guide/recipes.md): Node.js scripts that answer questions about a scan, such as which tests don't run and why. - [CI recipes](/test-inventory/guide/ci.md): Keep the inventory as a CI artifact, block focused tests and find the tests a pull request stopped. - [AI agents](/test-inventory/guide/agents.md): Give AI coding agents a project's tests with the test-inventory MCP server, the command line or the docs as plain text. - [Known limits](/test-inventory/guide/limits.md): What a scan can't know without running the code, such as config files and imported values. - [Compared with the runners](/test-inventory/guide/runners.md): How the inventory differs from playwright test --list and vitest list, and how CI compares them. - [Real projects](/test-inventory/guide/real-projects.md): The open-source test suites CI scans at pinned commits on every pull request. ### Reference - [Output](/test-inventory/reference/output.md): Every key of the JSON output for tests, suites, the summary and diagnostics, and how it is versioned. - [Supported syntax](/test-inventory/reference/syntax.md): The Playwright and Vitest imports, calls and modifiers a scan reads. - [Diagnostics](/test-inventory/reference/diagnostics.md): Every diagnostic a scan reports, its level and when it is given. ### API #### Interfaces - [Interface: InventoryFilter](/api/interfaces/InventoryFilter.md) - [Interface: ScanOptions](/api/interfaces/ScanOptions.md) - [Interface: ScanSourceOptions](/api/interfaces/ScanSourceOptions.md) - [Interface: Inventory](/api/interfaces/Inventory.md) - [Interface: Tool](/api/interfaces/Tool.md) - [Interface: Summary](/api/interfaces/Summary.md) - [Interface: FileRecord](/api/interfaces/FileRecord.md) - [Interface: HookCounts](/api/interfaces/HookCounts.md) - [Interface: SuiteRecord](/api/interfaces/SuiteRecord.md) - [Interface: TestRecord](/api/interfaces/TestRecord.md) - [Interface: DeclaredAt](/api/interfaces/DeclaredAt.md) - [Interface: Annotation](/api/interfaces/Annotation.md) - [Interface: Diagnostic](/api/interfaces/Diagnostic.md) #### Type Aliases - [Type Alias: PickedInventory\](/api/type-aliases/PickedInventory.md) - [Type Alias: CommentsMode](/api/type-aliases/CommentsMode.md) - [Type Alias: Framework](/api/type-aliases/Framework.md) - [Type Alias: TestState](/api/type-aliases/TestState.md) - [Type Alias: StateSource](/api/type-aliases/StateSource.md) - [Type Alias: DiagnosticLevel](/api/type-aliases/DiagnosticLevel.md) - [Type Alias: DiagnosticCode](/api/type-aliases/DiagnosticCode.md) - [Type Alias: MetaValue](/api/type-aliases/MetaValue.md) - [Type Alias: InventoryLine](/api/type-aliases/InventoryLine.md) #### Functions - [Function: filterInventory()](/api/functions/filterInventory.md) - [Function: pickTestFields()](/api/functions/pickTestFields.md) - [Function: scanSource()](/api/functions/scanSource.md) - [Function: scan()](/api/functions/scan.md) ### Other - [About](/test-inventory/about.md): Who maintains test-inventory, how to support it and where the examples in the docs come from. - [Changelog](/test-inventory/changelog.md): What changed in each release of test-inventory. - [test-inventory](/test-inventory/api.md)