list_projects
List all indexed firmware projects with statistics to find project names or IDs, then inspect builds or health for a chosen project.
Instructions
List all indexed firmware projects with their statistics.
Read-only. No side effects. Use it to find another project; call
get_project_status for the builds and the health of one project.
indexed_at and first_indexed_at are UTC, in "YYYY-MM-DD HH:MM:SS" format — the same format that get_project_status returns.
indexed_at is the time of the newest build.
A project of several builds gets no counts here (symbol_count,
file_count, description and analysis are None): a file that
two images compile is in the index of each, thus a sum counts shared
code once for each build. get_project_status gives the counts of
each build.
analysis holds the project and vendor counts only. For the
model, analyze_vendor, and complete fields, call
get_build_info for that build.
Args:
project_root: Project root whose config names the index
directory (index.db_dir). Omitted, the global config does.
project: Project name or project_id — call list_projects to get them. Use
it to ask about a project that is not the project of the current
directory. It is an alternative to project_root, which takes a root
path. Give one of the two, not both.
Returns: list of dicts, each with: project_id, name, root_path, build_system, symbol_count, file_count, indexed_at (str — UTC), description (str), first_indexed_at (str — UTC), schema_version, current_schema, reindex_needed (bool — the schema is outdated, the compile_commands.json of a build changed or is missing, or a build holds rows of an older row format; each (variant, image) build counts), status (str — "ready" or "reindex_needed"), db (path to SQLite database file), build_count (int — number of builds, each a (variant, image) pair), analysis (dict — LLM-analysis coverage {project: {analyzed, skipped, total}, vendor: {analyzed, skipped, total}}, or None when no build is indexed).
When no project has an index, the result is a single dict with an
``info`` key. When fw-context cannot read a database, the result
holds a dict with ``db`` and ``error`` keys for that file.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Project name or project_id — call list_projects to get them. Use it to ask about a project that is not the project of the current directory. It is an alternative to project_root, which takes a root path. Give one of the two, not both. | |
| project_root | No | Project root whose config names the index directory; pass it to distinguish multiple indexed projects that keep separate index directories. Omitted = the global config. Every project in that directory is listed. This field also accepts a project name or a project_id, but project is the clear field for those. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |