Skip to content

Default Filters

By default, stars applies several filters to keep the output useful. These run automatically unless you pass --no-defaults.

FilterDefaultWhat it does
Archived reposExcludedHides repos marked as archived on GitHub
Stale reposExcluded if >365 daysHides repos not pushed to in over a year
Language exclusionsPHP, C#, Java, Python, RubyHides repos in these languages
ForksIncludedForks are not excluded by default

To see everything in your database, unfiltered:

Terminal window
stars --no-defaults

This shows all repos regardless of archive status, age, language, or fork status.

Terminal window
# See current exclusions
stars config get defaults.filters.exclude_languages
# => [PHP, C#, Java, Python, Ruby]
# Remove all language exclusions
stars config set defaults.filters.exclude_languages []
# Only exclude PHP
stars config set defaults.filters.exclude_languages [PHP]
Terminal window
stars config set defaults.filters.exclude_archived false

Forks are included by default. To exclude them:

Terminal window
stars config set defaults.filters.exclude_forks true

The default is 365 days. To show repos not pushed in up to 2 years:

Terminal window
stars config set defaults.filters.min_pushed_days 730

To effectively disable the staleness filter, set a very large number:

Terminal window
stars config set defaults.filters.min_pushed_days 99999

Filters are applied in mod.nu’s apply-default-filters function:

  1. Read filter settings from config (with hardcoded fallbacks)
  2. Calculate the cutoff date: (date now) - (min_pushed_days * 1day)
  3. For each repo, check:
    • archived — stored as integer (0/1) in SQLite, converted to bool
    • fork — same integer-to-bool conversion
    • language — checked against the exclusion list (empty language always passes)
    • pushed_at — parsed to datetime and compared against cutoff
  4. A repo must pass all active filters to appear in output

For ad-hoc filtering beyond the defaults, use Nushell pipelines:

Terminal window
# Only Rust repos with 100+ stars
stars --raw | where language == "Rust" | where stargazers_count > 100
# Repos pushed in the last 30 days
stars --raw | where { ($in.pushed_at | into datetime) > ((date now) - 30day) }
# Repos with specific topics
stars --raw | where { "machine-learning" in ($in.topics | from json) }