lowlighter/metrics
40.5
Weak · 1 October 2026
19.7k
lines of production code
JavaScript
with TypeScript
2
measurements over time
What this system is
This system is a modular metrics engine that generates visual GitHub profile summaries and activity reports. It operates as both a GitHub Action and a standalone web application, allowing users to compose SVG or Markdown outputs using a wide variety of plugins for code activity, social stats, and external integrations. The platform supports multiple rendering templates and provides a web interface for live previewing and configuring these dynamic metrics.
How it got here
2020 — v3 architecture overhaul and plugin expansion
26 changes.
The project underwent a major architectural restructuring, migrating from a legacy Node.js server to a composite GitHub Action with Docker support and a standalone web instance. This period saw the removal of outdated rendering engines and the introduction of a new default Classic template alongside specialized alternatives. Concurrently, the platform expanded significantly with numerous new plugins for tracking coding habits, music, performance, and external content, while deprecating the Twitter integration.
2021 — plugin ecosystem expansion and template modularization
33 changes.
This period focused on significantly expanding the plugin ecosystem with new features for activity tracking, social metrics, and external integrations like WakaTime and AniList. Concurrently, the project refactored its core architecture and template system to support modular, reusable partials, improving maintainability and enabling new output formats like Markdown with embedded SVGs.
2022 — plugin expansion and test infrastructure
24 changes.
This period focused on significantly expanding the project's plugin ecosystem by introducing new features for stock prices, health monitoring, gaming, and code analysis. Concurrently, a comprehensive centralized mocking infrastructure was built to replace external API dependencies, enabling reliable and deterministic testing for the growing number of integrations.
2023 — diverse plugin integrations
4 changes.
This period focused on expanding the platform's extensibility by introducing four new plugins for GitHub Sponsorships, Steam profiles, 16personalities, and cryptocurrency metrics. The work involved integrating various external APIs and web scraping tools to allow users to display diverse personal and financial data within their metrics.
Features
Achievements plugin now supports organization accounts
The achievements plugin has been extended to generate achievement lists for GitHub organization accounts in addition to user accounts. This location introduces the \organizations.mjs\ module, which defines organization-specific achievements such as Developers, Forkers, Managers, Packagers, Maintainers, Inspirers, Polyglots, Sponsors, Organization size, and Member tenure, mirroring the structure of the existing user achievements found in \users.mjs\.
source/plugins/achievements/list · high confidence
Add 16personalities plugin to display personality profiles
Users can now include a 16personalities personality profile in their metrics by enabling the new \plugin\_16personalities\ option and providing a profile URL. The plugin uses Puppeteer to scrape the 16personalities website and displays selected sections (personality, profile, traits) with optional trait scores, requiring no authentication tokens but necessitating the \metrics.run.puppeteer.scrapping\ setting for web instances.
source/plugins/community/16personalities · high confidence
Add AniList plugin to display anime, manga, and character favorites
Users can now integrate their AniList account to display favorite anime, manga, and characters in their metrics. This new plugin supports sections for favorites, currently watching, currently reading, and liked characters, with configurable limits and shuffling options. It requires no authentication token and automatically handles AniList API rate limits.
source/plugins/anilist · high confidence
Add Featured Repositories plugin
Introduces a new plugin that displays a list of chosen featured repositories, supporting featured, pinned, starred, and random repository types. Users can configure the number of items, display order, and filtering options such as including forks or specific affiliations (owner, collaborator, organization member).
source/plugins/repositories · high confidence
Add Fortune plugin to display random messages
Users can now enable the new Fortune plugin to display a random fortune message in their metrics. This community-contributed feature requires no authentication tokens and is available for user-level metrics. It introduces a new \plugin\_fortune\ boolean option (defaulting to disabled) that, when enabled, selects a weighted random fortune from a predefined list of messages with associated colors.
source/plugins/community/fortune · high confidence
Add GitHub Community Support plugin
A new plugin has been added that displays statistics (solutions, posts, topics, hearts, and badges) from a GitHub Support Community account. It uses Puppeteer to scrape the community profile and summary pages. Note that the plugin is marked as deprecated because GitHub Support Community has moved to GitHub Discussions.
source/plugins/support · high confidence
Add GitHub Projects plugin to display project progress
Introduces a new plugin that displays the progress of user and repository GitHub Projects. It supports both the legacy projects and the new Projects (beta/V2) experience, allowing users to enable it via \plugin\_projects\, limit the number of displayed items with \plugin\_projects\_limit\, feature specific repository projects via \plugin\_projects\_repositories\, and optionally show descriptions with \plugin\_projects\_descriptions\.
source/plugins/projects · high confidence
Add GitHub Skyline plugin for 3D commit calendar visualizations
Introduces the new GitHub Skyline plugin, which renders an animated 3D commit calendar by capturing screenshots from skyline.github.com (or alternate sites like GitHub City) using Puppeteer. Users can enable the plugin via \plugin\_skyline\ and customize the output with options such as \plugin\_skyline\_year\, \plugin\_skyline\_frames\, \plugin\_skyline\_quality\, and a \plugin\_skyline\_compatibility\ mode that uses CSS animations for broader browser support. Advanced configuration is available through \plugin\_skyline\_settings\ to define target URLs, readiness conditions, and elements to hide.
source/plugins/skyline · high confidence
Add GitHub Sponsorships plugin
A new plugin has been added to display GitHub sponsorship data, allowing users to show the total amount sponsored and a list of active sponsorships for users or organizations. The plugin supports configuration via \plugin\_sponsorships\ to enable it, \plugin\_sponsorships\_sections\ to select between displaying the total amount and the sponsorship list, and \plugin\_sponsorships\_size\ to adjust profile picture dimensions. It requires \read:user\ and \read:org\ scopes and fetches data using the GitHub GraphQL API.
source/plugins/sponsorships · high confidence
Add Google PageSpeed plugin for website performance auditing
Introduces a new plugin that displays website performance statistics by querying Google's PageSpeed Insights API. Users can enable the plugin to show scores for performance, accessibility, best practices, and SEO, with optional detailed metrics (such as First Contentful Paint and Cumulative Layout Shift), website screenshots, and PWA status checks. The plugin supports configuration via a token to manage API rate limits and allows auditing of a user's attached website or a custom URL.
source/plugins/pagespeed · high confidence
Add GraphQL queries for notable contributions, issues, and commits
The notable contributions plugin now includes specific GraphQL query definitions to fetch data for contributions, issues, and commits. The \contributions.graphql\ query retrieves repositories contributed to by a user, including metrics such as stargazers, forks, issues, and pull requests, sorted by star count. The \issues.graphql\ query fetches a user's issues, while \commits.graphql\ retrieves repository metadata including commit history counts. These queries enable the plugin to display detailed contribution statistics and activity badges.
source/plugins/notable/queries · high confidence
Add GraphQL queries for the achievements plugin
The achievements plugin now includes a set of GraphQL query definitions to fetch user and organization data required for calculating achievements. These queries cover default user metrics (repositories, forks, stars, pull requests, contributions, projects, packages, organizations, gists, followers, following, bio, status, sponsorships, discussions), organization-specific metrics, ranking calculations based on stars, followers, forks, and creation dates, total counts for issues, repositories, and users, as well as specific queries for metrics and Octocat status checks.
source/plugins/achievements/queries · high confidence
Add Introduction plugin to display account or repository descriptions
Users can now enable the new 'Introduction' plugin to display a user's bio, an organization's description, or a repository's description in their generated metrics. This feature is available for users, organizations, and repositories, supporting both the Classic and Repository templates. It requires enabling the \plugin\_introduction\ option and may utilize optional scopes like \read:user\, \read:org\, or \repo\ depending on the context.
source/plugins/introduction · high confidence
Add PoopMap plugin for displaying activity statistics
Users can now display statistics from a PoopMap account by enabling the new community plugin. This requires providing a PoopMap API token and optionally configuring the time range (7, 30, 180, or 365 days) to filter the displayed data.
source/plugins/community/poopmap · high confidence
Add RSS feed plugin
Introduces a new RSS plugin that displays news from a specified RSS feed in user, organization, or repository metrics. Users can enable the plugin via \plugin\_rss\, provide a feed URL via \plugin\_rss\_source\, and control the number of displayed items (up to 30) using \plugin\_rss\_limit\.
source/plugins/rss · high confidence
Add Recent Activity plugin
Introduces a new plugin that displays recent GitHub activity (commits, issues, pull requests, releases, stars, forks, etc.) in generated metrics. The plugin supports user, organization, and repository scopes, allows filtering by event type, visibility, and time range, and lets users skip repositories or ignore specific users (including bots).
source/plugins/activity · high confidence
Add Stack Overflow plugin to display user activity stats
Introduces a new Stack Overflow plugin that displays user metrics (reputation, badges, views) and lists recent or top-rated questions and answers. The plugin requires no API token, supports configuration for specific sections (answers-top, answers-recent, questions-top, questions-recent), and allows users to customize display limits for entries and code snippet lines.
source/plugins/stackoverflow · high confidence
Add WakaTime plugin to display coding statistics
Introduces a new WakaTime plugin that fetches and displays coding activity statistics (such as total time, projects, languages, editors, and operating systems) from a WakaTime or self-hosted Wakapi account. Users can configure the data range, visible sections, language filtering, and repository visibility (public vs. all) via options like \plugin\_wakatime\_sections\, \plugin\_wakatime\_days\, and \plugin\_wakatime\_repositories\_visibility\.
source/plugins/leetcode, source/plugins/wakatime · high confidence
Add commit calendar plugin with multi-year history support
Introduces a new calendar plugin that displays a commit activity calendar across multiple years. Users can enable it via \plugin\_calendar\ and control the visible range with \plugin\_calendar\_limit\: positive values show the last N years, zero shows the full history since account creation, and negative values extend the history further back (useful for pre-registration commits).
source/plugins/calendar · high confidence
Add isometric commit calendar plugin
Users can now enable a new isometric view of their GitHub commit history, displaying an isometric calendar alongside statistics such as current streak, maximum commits in a day, and average commits per day. The plugin supports two time ranges—half-year (180 days) and full-year (1 year)—and requires the \plugin\_isocalendar\ option to be set to \yes\ in the workflow configuration.
source/plugins/isocalendar · high confidence
Add markdown template support for activity, posts, RSS, topics, and tweets
New EJS partial templates have been added to the markdown rendering pipeline to display content from various plugins. Users can now see recent GitHub activity (commits, PRs, issues, stars, etc.), recent blog posts with optional cover images, RSS feed items, starred GitHub topics with shields, and latest tweets with attachments directly in their generated markdown profiles. Each section respects plugin configuration and handles errors or empty states gracefully.
source/templates/markdown/partials · high confidence
Add plugin to display recently starred repositories
A new 'stars' plugin has been added, allowing users to display their recently starred repositories in generated metrics. This feature introduces two configuration options: \plugin\_stars\ (boolean, default: no) to enable the plugin, and \plugin\_stars\_limit\ (number, 1-100, default: 4) to control the number of repositories shown. The plugin queries the GitHub GraphQL API for starred repositories and formats the output with relative time indicators (e.g., '2 days ago').
source/plugins/stars · high confidence
Add repositories traffic plugin to display page view statistics
Introduces a new plugin that aggregates and displays the total number of page views (count and uniques) across affiliated repositories. The plugin queries the GitHub API for view statistics, supports skipping specific repositories via the \plugin\_traffic\_skipped\ option, and provides clear error handling for insufficient token scopes or rejected requests.
source/plugins/traffic · high confidence
Add repository licenses plugin to analyze dependencies and license compliance
Introduces a new licenses plugin that analyzes repository dependencies using the \licensed\ tool to display license information, including permissions, limitations, and conditions, along with usage statistics. Users can enable this feature via the \plugin\_licenses\ option, optionally configuring a setup command (e.g., \npm ci\) via \plugin\_licenses\_setup\ to install dependencies before analysis. The plugin supports generating visual ratios of used licenses (\plugin\_licenses\_ratio\) and detailing legal aspects (\plugin\_licenses\_legal\, enabled by default). It requires specific runtime settings for CPU, temp directory, git, and licensed execution, and includes a security warning against enabling it on web instances due to potential command injection risks.
source/plugins/licenses · high confidence
Add stargazers worldmap plugin to visualize GitHub star locations
The stargazers plugin now includes a worldmap visualization that displays the geographic distribution of a repository's stars. This feature requires a Google Maps API token to geocode user-provided locations and generates an SVG map using D3.js and country boundary data from the world-atlas package. Users will see a choropleth map highlighting countries based on the volume of stars, with colors indicating density.
source/plugins/stargazers/worldmap · high confidence
Core plugin initialization and configuration documentation
The core plugin now initializes global configuration settings, including timezone handling (using the \TZ\ environment variable or \config\_timezone\), display modes (\large\ or \columns\ via \config\_display\), and animation toggles. It also introduces support for configuration presets (\config\_presets\), custom CSS/JS injection (\extras\_css\, \extras\_js\), and padding adjustments (\config\_padding\). The plugin manages output actions (\output\_action\), output conditions (\output\_condition\), and optimization features (\optimize\), while providing comprehensive documentation in \README.md\ and example workflows in \examples.yml\.
source/plugins/core · high confidence
Follow-up plugin adds indepth analysis and user-created issue tracking
The follow-up plugin now supports an 'indepth' mode (enabled via \plugin\_followup\_indepth\) that differentiates issues and pull requests opened by maintainers versus other users by fetching repository collaborators, and adds a 'user' section (enabled via \plugin\_followup\_sections: user\) to display the overall status of issues and pull requests created by the account across GitHub. It also retains the ability to exclude archived repositories via \plugin\_followup\_archived\.
source/plugins/followup · high confidence
Initial project scaffolding and configuration
The repository is initialized with essential configuration files including a Dockerfile for containerization, a .dockerignore file, and an .editorconfig for consistent code formatting. Documentation standards are established via ARCHITECTURE.md, CODE\_OF\_CONDUCT.md, CONTRIBUTING.md, and SECURITY.md. The project structure is defined with a new .gitattributes file to manage linguist detection for generated and vendored files, and an updated .gitignore to exclude community templates, presets, and build artifacts. The root entry point index.mjs is removed, and the LICENSE copyright is updated to '2020-present'. Configuration examples for the web instance (settings.example.json) and GitHub Action (action.yml) are expanded to support a wide range of plugins and options, while vercel.json is added to configure URL rewrites for the web deployment.
(repo-wide) · high confidence
Introduce Classic template as the default GitHub-style metrics layout
The Classic template is now available as the default rendering option, providing a visual identity that mimics GitHub's own interface. This change introduces a new layout engine that supports multiple display modes, including a standard single-column view, a 'large' mode for expanded content, and a 'columns' mode for multi-column organization. The template is fully compatible with SVG, PNG, JPEG, and JSON output formats and supports both user and organization accounts. It serves as the foundation for rendering all supported plugins, from activity and achievements to specialized integrations like Stargazers and Sponsors, ensuring a consistent and recognizable aesthetic for generated metrics.
source/templates/classic · high confidence
Introduce Metrics Embed web interface for live preview and configuration
A new web-based interface is now available at the embed location, allowing users to interactively preview GitHub metrics, toggle plugin options, and generate configuration code (Markdown or GitHub Action) without leaving the browser. The interface includes a live preview pane, a configuration sidebar for plugins and templates, and tabs for viewing the resulting code snippets, with support for dark mode and GitHub OAuth sign-in.
source/app/web/statics/embed · high confidence
Introduce Notable Contributions plugin
The new 'Notable contributions' plugin allows users to display badges highlighting their most significant contributions across repositories. It supports filtering by contribution types (commits, pull requests, issues), repository owner type (organizations or user accounts), and specific repository lists. An optional 'indepth' mode provides detailed statistics such as total commit counts, user-specific commit percentages, and maintainer status, enabling users to showcase their impact and activity levels more granularly.
source/plugins/notable · high confidence
Introduce Starred Topics plugin with labels and icons modes
Users can now display their GitHub starred topics in metrics using a new plugin. The plugin supports two display modes: 'labels' (default, showing topic names and descriptions) and 'icons' (showing topic icons only, filtering out topics without icons). It allows sorting by stars, activity, starred date, or randomly, and includes a configurable limit (0–20) to control the number of topics shown. Web instances require Puppeteer scraping enabled to fetch this data.
source/plugins/topics · high confidence
Introduce composite action with prebuilt Docker image support
The GitHub Action is now implemented as a composite action that orchestrates a Docker-based workflow. It automatically detects whether the action is the official version or a fork, and for official releases, it attempts to pull a prebuilt Docker image from the GitHub Container Registry to speed up execution; if the image is unavailable or a fork is used, it falls back to building the image locally from the Dockerfile. The action also validates that required runner dependencies (Docker, jq) are present before proceeding.
source/app/action · high confidence
Introduce dedicated repository template for single-repo metrics
Users can now generate metrics for a specific repository by using the new 'repository' template, which requires providing both a 'user' and a 'repo' argument. This template fetches data for a single repository, overriding user-level metrics (such as creation date, disk usage, and website URL) with repository-specific values, and includes support for plugins like lines, follow-up, and projects. The entry point is the new template processor in \source/templates/repository/template.mjs\, which handles the GraphQL/REST queries and data transformation, supported by new documentation, examples, and metadata files in the same directory.
source/templates/repository · high confidence
Introduce standalone web instance application
Adds a new entry point (source/app/web) that launches an Express-based web server for the metrics application. This instance serves static assets, plugin metadata, and template data, while handling GitHub API interactions with configurable rate limiting, caching, and optional sandbox/mock modes. It also provides a configuration example (settings.example.json) detailing available options such as OAuth, API endpoints, and extra feature flags.
source/app/web · high confidence
Introduce standalone web-based GitHub Insights dashboard
The Insights section now includes a dedicated client-side web application (index.html, script.js, style.css) that allows users to search for any GitHub user and view their metrics, rankings, achievements, and sponsorship details directly in the browser. This new interface supports OAuth sign-in, respects system dark/light mode preferences, and handles API rate-limiting with a progress indicator, providing a richer, interactive experience compared to the previous static or backend-rendered views.
source/app/web/statics/insights · high confidence
Introduce web instance landing page with insights and embed modes
The web interface now features a new landing page (\index.html\) that serves as the entry point for users. This page dynamically detects the user's system color scheme (dark/light mode) and applies it to the UI. It presents two primary entry points based on the server's configured modes: an 'Insights' section to search for and view GitHub user metrics, and an 'Embed' section to generate custom metrics infographics. The page also displays real-time GitHub API rate limit status and provides a 'Sign in with GitHub' option when OAuth is enabled, improving the initial user experience and discoverability of the tool's capabilities.
source/app/web/statics · high confidence
New 16personalities plugin and refactored classic template structure
The classic template now includes a new 16personalities plugin that displays personality type, traits, and profile sections with visual gauges. The template structure has been refactored to use a partials system, with a new \\_.json\ manifest defining the render order of all plugin sections. Several existing plugins have been migrated to this new structure, including achievements, activity, anilist, and base activity/community stats, ensuring consistent rendering and improved maintainability.
source/templates/classic/partials · high confidence
New Achievements plugin for GitHub activity highlights
The new Achievements plugin allows users to display highlights of an account's GitHub activity, supporting both user and organization profiles. It offers configurable display styles (detailed or compact), rank thresholds (S, A, B, C, X), and options to filter, limit, or showcase specific achievements. The plugin uses precomputed colors for icons and supports secrets achievements by default.
source/plugins/achievements · high confidence
New Chess plugin for displaying last game on Lichess
Users can now display their last chess game from Lichess.org in their metrics by enabling the new \plugin\_chess\ option. This requires providing a \plugin\_chess\_token\ (an Lichess API token) and optionally configuring the \plugin\_chess\_user\ and \plugin\_chess\_platform\ settings. The plugin fetches the most recent game PGN, parses the moves and result, and renders an animated chessboard visualization.
source/plugins/community/chess · high confidence
New Coding Habits and Activity plugin
Introduces a new plugin that displays coding habits based on recent activity, including mildly interesting facts (indentation style, average characters per line, most active time/day) and recent activity charts (commit activity per hour/day and recent language usage). The plugin supports configuration for event count, time window, skipped repositories, and chart display types (classic div-based or graph SVG-based).
source/plugins/habits · high confidence
New Comment Reactions plugin
A new plugin has been added to display overall user reactions on recent issues, comments, and discussions. It allows users to enable the feature via \plugin\_reactions\, configure display limits for different content types (issues, pull requests, discussions), filter by comment age, choose between absolute or relative percentage scaling, and ignore specific users (such as bots).
source/plugins/reactions · high confidence
New Crypto Metrics plugin
Added a new community plugin that generates an SVG image displaying cryptocurrency market metrics. Users can enable this feature by setting \plugin\_crypto: yes\ and configuring options such as \plugin\_crypto\_id\ (e.g., bitcoin), \plugin\_crypto\_vs\_currency\, \plugin\_crypto\_days\, and \plugin\_crypto\_precision\. The plugin fetches price data from the CoinGecko API and renders a timeline chart of the specified currency's performance.
source/plugins/community/crypto · high confidence
New Discussions plugin to display GitHub discussions statistics
A new plugin has been added that displays GitHub Discussions statistics, including total discussions started, comments posted, answers provided, and upvote counts. It also breaks down discussions by category, showing the most active categories and allowing users to limit the number of displayed categories via the \plugin\_discussions\_categories\_limit\ option.
source/plugins/discussions · high confidence
New Gists plugin to display gist statistics
Users can now enable a new 'Gists' plugin to display statistics about their GitHub gists, including total count, stargazers, forks, files, and comments. This feature is available for user accounts and requires the \plugin\_gists: yes\ configuration option.
source/plugins/gists · high confidence
New GitHub Sponsors plugin for displaying supporter metrics
A new plugin has been added to display GitHub Sponsors data, including active sponsor lists, past sponsorships, and the user's active funding goal. Users can configure the displayed sections (goal, list, about), customize the sponsor avatar size, and set a custom title caption. The plugin supports both users and organizations, requiring specific GitHub API scopes (read:user, read:org) and a token with appropriate permissions to fetch private past sponsorship data.
source/plugins/sponsors · high confidence
New GraphQL queries for user and repository follow-up metrics
The follow-up plugin now includes new GraphQL query definitions to calculate issue and pull request statistics. The \user.graphql\ file adds queries to count open, draft, skipped, closed issues, and open, draft, closed, merged pull requests for a specific user, with support for filtering archived repositories. The \repository.graphql\ file provides similar metrics scoped to a specific repository, filtering by collaborators. Additionally, \repository.collaborators.graphql\ was added to fetch the list of collaborators for a repository, which is used as a filter in the repository-specific queries.
source/plugins/followup/queries · high confidence
New Lines of Code Changed plugin
Introduces a new plugin that displays the number of lines of code added and removed across repositories. Users can enable it via \plugin\_lines\ and configure which sections to display (base totals, top repositories, or a time-based history graph) using \plugin\_lines\_sections\. The plugin supports filtering specific repositories with \plugin\_lines\_skipped\, limits the number of repositories shown with \plugin\_lines\_repositories\_limit\, and controls the history graph's time range with \plugin\_lines\_history\_limit\. To mitigate potential inaccuracies from GitHub's API caching, a \plugin\_lines\_delay\ option allows a configurable wait before a second query is performed.
source/plugins/lines · high confidence
New Markdown template with on-the-fly SVG embedding
The markdown template is now available, allowing users to generate a Markdown file from a custom template using the EJS engine. This template supports user, organization, and repository scopes, and includes aliases for common metrics (e.g., \NAME\, \COMMITS\) and plugin data (e.g., \POSTS\, \TOPICS\). A key feature is the \embed()\ function, which enables rendering SVG metrics (like languages or isocalendar) directly into the Markdown output without requiring separate jobs, with results cached in a specified folder. The release includes documentation, example templates (including PDF output), and metadata configuration.
source/templates/markdown · high confidence
New Music plugin for tracking listening activity
The new Music plugin allows users to display top and recently listened music tracks or titles from a random playlist. It supports four providers: Apple Music, Spotify, Last.fm, and YouTube Music. Users can choose between three modes: \playlist\ (random tracks from a URL), \recent\ (recently played), and \top\ (top artists or tracks with configurable time ranges). Configuration requires a provider-specific token (e.g., Spotify credentials, Last.fm API key, or YouTube cookie) and optionally a username.
source/plugins/music · high confidence
New Nightscout plugin for blood sugar monitoring
Added a new community plugin that displays blood sugar values from a Nightscout site. Users can enable the plugin by providing their Nightscout URL and configuring options such as the number of data points to display and thresholds for low, high, urgent low, and urgent high alerts.
source/plugins/community/nightscout · high confidence
New People plugin for displaying user and repository relationships
The new \people\ plugin allows users to display relationships with other users, such as followers, following, sponsors, contributors, stargazers, watchers, and members, in generated metrics. This feature supports both user/organization accounts and specific repositories, offering options to customize the display limit, picture size, and section types. It also includes privacy controls like forcing identicons or hiding users without custom avatars, and supports custom sponsor lists and data shuffling for varied outputs.
source/plugins/people · high confidence
New Random Code Snippet plugin
A new plugin has been added that displays a random code snippet from recent GitHub activity history. It allows users to configure the number of events to load, the maximum age of events, visibility settings (public vs. all), specific languages to showcase, and repositories to skip. The plugin includes a security disclaimer warning that improper configuration could potentially expose private code.
source/plugins/code · high confidence
New Recent Posts plugin for dev.to and Hashnode
A new 'Recent posts' plugin has been added to the metrics system, allowing users to display recent articles from external blogging platforms. The plugin currently supports dev.to and Hashnode, fetching article titles, descriptions, dates, and cover images. Users can configure the source, specify a username, limit the number of displayed posts (default 4, max 30), and toggle the inclusion of post descriptions and cover images in the generated SVG.
source/plugins/posts · high confidence
New Splatoon 3 plugin for displaying recent match data
A new community plugin has been added to display Splatoon 3 recent matches, including player summaries, Versus (Turf War/Anarchy Battle), and Salmon Run results. The plugin fetches data from Splatnet using the s3si tool and allows users to configure displayed sections and match limits. It also supports optional integration with stat.ink to automatically upload fetched game data.
source/plugins/community/splatoon · high confidence
New Star Lists plugin for displaying GitHub user star lists
This change introduces the new \starlists\ plugin, which allows users to display their GitHub star lists in generated metrics. The plugin scrapes the user's starred repositories organized by list, supporting options to limit the number of lists and repositories, shuffle the repository order, and filter specific lists via ignore or include patterns. It also includes a feature to generate programming language statistics from the repositories within those star lists, with support for custom language aliases and ignored languages. The implementation relies on Puppeteer for web scraping and requires the \metrics.run.puppeteer.scrapping\ setting to be enabled on web instances.
source/plugins/starlists · high confidence
New Stargazers plugin for tracking repository star history
Introduces the Stargazers plugin, which displays the evolution of stargazers across affiliated repositories. Users can enable this feature to visualize total star counts and daily new stars over a configurable time range (defaulting to 14 days). The plugin supports two chart display types: 'classic' (div-based) and 'graph' (SVG-based, requiring D3). Additionally, it offers an optional worldmap visualization of stargazer locations, which requires a Google Maps API token and supports sampling to limit API usage.
source/plugins/stargazers · high confidence
New Steam plugin to display player profile and game history
A new plugin has been added that integrates with the Steam Web API to display your player profile and played games. Users can configure it with a Steam token and user ID to show sections for their profile, most-played games, and recently-played games, with options to filter by playtime, ignore specific titles, and limit the number of achievements or games displayed.
source/plugins/steam · high confidence
New Terminal template mimicking an SSH session
A new 'Terminal' template is now available, rendering metrics as an animated SSH terminal session complete with a title bar, prompt, and typing animations. It supports user and organization profiles, outputs to SVG, PNG, JPEG, and JSON, and includes styling for plugins like isocalendar, screenshots, and traffic data.
source/templates/terminal · high confidence
New Website Screenshot plugin for metrics
A new community plugin has been added that allows users to embed website screenshots or extracted text into their metrics reports. Users can configure the target URL, a CSS selector to isolate specific elements, and the output mode (either an image or plain text). The plugin also supports custom viewport dimensions, a configurable wait time to ensure content loads, and an option to include or exclude the background color.
source/plugins/community/screenshot · high confidence
New contributors plugin for repository activity stats
A new plugin has been added to display repository contributors from a specified commit range, including their total contribution counts and optional categorization by file type (e.g., code, documentation). Users can enable this feature via \plugin\_contributors\, configure the commit range with \plugin\_contributors\_base\ and \plugin\_contributors\_head\, exclude specific users with \plugin\_contributors\_ignored\, and define custom contribution categories using \plugin\_contributors\_categories\ to group contributors by the types of files they modified.
source/plugins/contributors · high confidence
New language analysis plugin with deep and recent modes
The \source/plugins/languages/analyzer\ directory now contains a new language analysis plugin. It introduces an \Analyzer\ base class and two specific modes: \IndepthAnalyzer\, which clones repositories and analyzes commit history using Git and Linguist, and \RecentAnalyzer\, which fetches recent activity events via the GitHub API. A CLI entry point (\cli.mjs\) allows users to select the mode and configure parameters like timeouts, categories, and authoring filters. The implementation supports private repositories via token authentication and includes GPG key verification for commit signatures.
source/plugins/languages/analyzer · high confidence
New stock price plugin for GitHub Metrics
A new community plugin has been added to display stock market prices and charts for a specified company. Users can enable this feature by setting \plugin\_stock: yes\ and providing a Yahoo Finance API token via \plugin\_stock\_token\. The plugin supports configuring the stock symbol (\plugin\_stock\_symbol\), time range (\plugin\_stock\_duration\), and data interval (\plugin\_stock\_interval\) to generate visualizations of stock performance.
source/plugins/community/stock · high confidence
Removals
Removal of legacy GitHub Action entry point
The \action/index.mjs\ file, which served as the entry point for the GitHub Action, has been deleted. This file previously handled the execution flow for generating SVG metrics, including loading templates, querying GitHub data via GraphQL and REST APIs, and committing the resulting image to the repository. Its removal indicates that the action's execution logic has been migrated or restructured elsewhere in the codebase.
action · high confidence
Removal of legacy metrics rendering engine and web server
The legacy \src/app.mjs\ Express server, \src/metrics.mjs\ rendering logic, \src/style.css\, and \src/template.svg\ have been deleted. This removes the previous implementation that served SVG metrics via a Node.js HTTP server, queried GitHub data using a static GraphQL query, and rendered the profile using a hardcoded template with inline styles.
src · high confidence
Removed pre-bundled action distribution file
The pre-bundled \action/dist/index.js\ file has been deleted from the repository. This file previously contained the compiled, webpack-bundled JavaScript code for the GitHub Action, including the SVG template generation logic and metric data fetching. Its removal indicates a shift in the build or deployment process, likely requiring users or the CI system to rebuild the action from source or use a different distribution method, rather than relying on the committed artifact.
action/dist · high confidence
Architecture
Metrics engine restructured into modular components
The metrics application logic has been reorganized into distinct modules: \index.mjs\ now handles the core rendering pipeline and embed function, \metadata.mjs\ manages plugin and template discovery, \presets.mjs\ loads configuration presets, \setup.mjs\ initializes the environment and community templates, and \utils.mjs\ centralizes helper functions. This change improves code maintainability and separation of concerns without altering the external API or user-facing behavior.
source/app/metrics · high confidence
Behavioural changes
Base plugin configuration and behavior updates
The base plugin now supports an \indepth\ mode that fetches more accurate statistics for total commits, issues, pull requests, and repositories contributed to by querying the full account lifetime rather than just the last year. Repository fetching logic has been updated to support an array of affiliations (owner, collaborator, organization\_member) and includes automatic batch halving to handle API timeouts. Additionally, the plugin now includes \actions-user\ in the default list of ignored users and adds a \base\_skip\ option to bypass base content generation entirely.
source/plugins/base · high confidence
Languages plugin refactored with indepth and recent analysis modes
The languages plugin has been restructured to support two new analysis modes: 'indepth' (which clones and analyzes repositories to provide detailed stats like lines of code) and 'recently-used' (which analyzes recent activity events). This change introduces new configuration options such as \plugin\_languages\_indepth\, \plugin\_languages\_sections\, \plugin\_languages\_details\, and \plugin\_languages\_analysis\_timeout\, allowing users to customize which sections are displayed, what details are shown, and how long the analysis is allowed to run. The plugin now also supports custom language aliases, color sets, and filtering by categories.
source/plugins/languages · high confidence
New OAuth login page with explicit localStorage disclaimer and scope selection
The OAuth authentication flow now presents a dedicated login interface that explicitly informs users that a session identifier will be stored in the browser's localStorage and allows them to manually select additional read-only scopes (read:org, read:user, read:packages, read:project) beyond the default requirements. The flow also includes a redirect handler that persists the session token to localStorage and a client-side check that disables the login button if localStorage is unavailable.
source/app/web/statics/oauth · high confidence
Refactored base GraphQL queries into modular, reusable components
The monolithic \src/query.graphql\ has been replaced by a set of specialized, modular GraphQL query files in \source/plugins/base/queries/\ (including \calendar.graphql\, \contributions.graphql\, \repositories.graphql\, \user.graphql\, and \organization.graphql\). This change introduces parameterized templates (e.g., \BaseField\, \BaseFieldRepositories\) and distinct queries for user, organization, and repository metrics, allowing the plugin system to compose specific data needs more efficiently. The refactoring also standardizes variable usage (e.g., explicit string interpolation for calendar dates) and expands the available data points, such as adding deployment/environment counts and detailed language/license info to repository queries.
source/plugins/base/queries · high confidence
Removed post-build static include processing
The post-build utility that previously processed static includes in the generated action distribution has been removed. Users will no longer have the \\<\#include ...\>\ syntax automatically resolved and replaced with file contents during the build process.
utils · high confidence
Repository template renders modular plugin sections
The repository template now renders its content as a set of modular partials, defined by the new \source/templates/repository/partials/\_.json\ manifest. This manifest explicitly lists the sections included in the output (base.header, introduction, followup, languages, projects, pagespeed, stargazers, people, activity, posts, rss, screenshot, stock, crypto, contributors, sponsors, and licenses). Corresponding EJS templates for these sections have been added to the \source/templates/repository/partials\ directory, allowing the repository view to be constructed from these distinct, reusable components.
source/templates/repository/partials · high confidence
Terminal-style profile README templates refactored into modular partials
The terminal-themed profile README templates have been reorganized into a set of reusable EJS partials (located in \source/templates/terminal/partials\) to improve maintainability and support for additional data sections. This change introduces specific template components for the base header (user/organization info), activity and community tracking, repository statistics (including forks, stars, issues, and PRs), gists, language usage, page speed metrics, isocalendar contribution graphs, and website screenshots. A configuration file (\\_.json\) now explicitly defines the order in which these partials are rendered, allowing users to customize the layout of their terminal-style profile READMEs.
source/templates/terminal/partials · high confidence
Tweets plugin deprecated due to Twitter API changes
The tweets plugin, which displayed the latest tweets from a Twitter account, is now deprecated and no longer maintained. This change reflects Twitter's removal of free API access for fetching tweets under their new pricing policy. Users relying on this feature will no longer receive updates or support for it.
source/plugins/tweets · high confidence
Updated Splatoon 3 S3SI plugin to version 0.4.5
The S3SI library bundled within the Splatoon 3 community plugin has been upgraded to version 0.4.5. This update includes changes to the bundled API client (index.ts) and refreshed mock data files for user summaries, versus battles, and co-op modes, ensuring the plugin uses the latest data structures and query definitions for interacting with Splatoon 3 services.
source/plugins/community/splatoon/s3si · high confidence
Test coverage
Add CI, metrics, and presets test suites with mocked secrets; Added API mocks for Anilist, Hashnode, LeetCode, Spotify, and YouTube Music; Added API mocks for Last.fm, Lichess, Nightscout, PageSpeed, Poopmap, Spotify, Stack Overflow, Steam, Twitter, Wakatime, and Yahoo Finance; Added GraphQL API mocks for testing; Added async mock implementations for GitHub REST repository API endpoints; Added mock for GitHub REST API requests in tests; Added mock implementations for GitHub REST user API endpoints; Added test mocks for GitHub Activity REST API endpoints; Added test mocks for GitHub REST API emojis and rate limit endpoints; Centralized test mocking infrastructure for API and external services.
Dependencies
Major dependency overhaul and project restructuring
The project has been upgraded to version 3.35.0-beta, involving a significant migration of the lockfile format from v1 to v3 and a comprehensive update of dependencies. Key library upgrades include @actions/core to 1.10.1, @actions/github to 5.1.1, @octokit/graphql to 7.0.1, and @octokit/rest to 20.0.1. The build toolchain has shifted from @vercel/ncc to dprint, and testing is now managed by Jest 29.7.0. New dependencies such as @faker-js/faker, @primer/css, d3, and puppeteer have been added, while older packages like image-to-base64 have been removed. The package structure now explicitly defines optional dependencies (e.g., libxmljs2, chess.js) and updates the main entry point to source/app/web/index.mjs.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 42 → 40 (-1.2)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 26 → 25 (-0.3)
- Architecture 90 → 82 (-7.5)
- Maturity 64 → 64 (+0.0)
- Readiness 49 → 45 (-4.0)
- Security 61 → 67 (+6.6)
- Accessibility 55 → 55 (-0.3)
- Performance 60 (new)
Resolved (6)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: written for insiders (source/plugins/licenses/README.md)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- plugin (cognitive 27) (source/app/metrics/metadata.mjs)
- plugin (cyclomatic 26) (source/app/metrics/metadata.mjs)
New (44)
- Documentation: no architecture or design documentation (source/plugins/licenses/README.md)
- Documentation: no project overview (source/plugins/core/README.md)
- End-of-life framework: Vue 2
- FileTooLong: embed/app.placeholder.js (source/app/web/statics/embed/app.placeholder.js)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- Outdated (npm): @actions/core
- Outdated (npm): @actions/github
- Outdated (npm): @faker-js/faker
- Outdated (npm): @octokit/graphql
- Outdated (npm): @octokit/rest
- Outdated (npm): @primer/css
- Outdated (npm): @primer/octicons
- Outdated (npm): @twemoji/parser
- Outdated (npm): axios
- Outdated (npm): compression
- Outdated (npm): d3
- Outdated (npm): ejs
- Outdated (npm): emoji-name-map
- Outdated (npm): express
- …and 24 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
lowlighter/metrics was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 366f8b9dfe3a59656c67d5dcad9950f59c9bc96d — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.