lists.yaml file defines which packages Shipped should track, organized into lists and groups. This is the primary configuration file for managing your tracked packages.
File Location
Placelists.yaml in your config directory:
- Docker:
/data/config/lists.yaml(default) - Custom: Set via
SERVER_CONFIG_DIRenvironment variable
Basic Structure
lists.yaml
Schema Reference
List
A list is a collection of package groups with a name and optional description.The display name for this list. Must be unique across all lists.This is also used to generate the list slug for URLs (e.g., “Frontend Tools” becomes “frontend-tools”).
Optional description explaining the purpose of this list.
Array of package groups. Each list can contain multiple groups to organize packages.
Group
Groups organize packages within a list.The identifier for this group. Can be a string or number.
Optional display name for the group. If not provided, the
name field is used.Whether to display the group name in the UI. Defaults to
true.Array of package configurations. See Package Configuration below.
Package Configuration
Each package requires a provider and name. Additional fields customize display and behavior.The package provider. Supported values:
github- GitHub releasesnpm- NPM packagesdocker- Docker Hub imagespython- PyPI packages
The package name in provider-specific format:
- GitHub:
owner/repo(e.g.,vuejs/vue) - NPM: package name (e.g.,
react,@types/node) - Docker:
imageornamespace/image(e.g.,node,library/nginx) - Python: package name (e.g.,
django,requests)
Custom display name for the package. If not provided, the
name field is used.Custom icon for the package (light mode). Supports icon strings like
lucide:github.Custom icon for dark mode. Falls back to
icon if not specified.Provider-specific configuration options. See Provider-Specific Options.
Provider-Specific Options
Theextra field accepts provider-specific options that control how packages are fetched and displayed.
- GitHub
- NPM
- Docker
- Python
Provider-specific options can be set globally in
providers.yaml and overridden per-package in lists.yaml.See Providers Configuration for more details.Complete Example
lists.yaml
Validation and Error Handling
The lists configuration is validated using Effect Schema with graceful error handling:Validation Rules
Validation Rules
- List names must be unique - Duplicate list names will cause validation errors
- Provider must be valid - Only
github,npm,docker, andpythonare supported - Package name format - Must match provider-specific format requirements:
- GitHub: Must contain
/(e.g.,owner/repo) - NPM: Valid package name (supports scoped packages like
@org/package) - Docker: Image name (with optional namespace)
- Python: Valid PyPI package name
- GitHub: Must contain
- Extra fields - Must match provider’s schema (see provider-specific options above)
Invalid Package Handling
When a package fails validation:- The package is skipped (not included in the list)
- A warning is logged with details about the validation error
- The rest of the list continues to load normally
- Warnings are displayed in the UI to help you identify issues
IDE Autocompletion
Enable IDE autocompletion by adding the schema reference to the top of yourlists.yaml file:
lists.yaml
- Field autocompletion
- Inline validation errors
- Type hints for all configuration options
Hot Reloading
Changes tolists.yaml are automatically detected and applied:
- Edit
lists.yamlin your config directory - Save the file
- Watch as Shipped automatically reloads the configuration
- See the changes reflected in the UI (if streaming is enabled)
Common Patterns
Tracking multiple versions of the same package
Tracking multiple versions of the same package
Use different dist-tags for NPM or include pre-releases for GitHub:
Organizing packages by team or project
Organizing packages by team or project
Create separate lists for different teams or projects:
Hiding group names for cleaner UI
Hiding group names for cleaner UI
Set
showName: false on groups you don’t want to display:Next Steps
Providers Configuration
Set global defaults for providers
General Settings
Configure application behavior