Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Skyline turns your GitHub contribution history into a terminal cityscape or an SVG you can place in a profile README. Install the Go command-line tool, authenticate it with a GitHub token, and run it with your username. The result is a playful picture of activity—not a score of code quality or impact.

How Skyline turns contributions into a city

Skyline maps each week to a building and each of the seven days to a window. A day with no contributions stays dark; active days light up, with color intensity reflecting GitHub’s four contribution levels. Building height uses a logarithmic scale, which helps keep an unusually busy week from making the rest of the skyline look flat. The record week gets an antenna, and month labels appear below the buildings.

The idea is simple: “Each week becomes a building. Each day becomes a window.” — Jessica Doering, DEV Community.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Skyline can render in the terminal or save an SVG. Its decorative stars and SVG flicker are deterministic for the same contribution data, so the decoration does not randomly change between runs. The project is open source under the Apache-2.0 license.

Install Skyline and render your contribution history

The project documentation lists Go 1.25 or newer and a GitHub token as requirements. Skyline checks GITHUB_TOKEN, then GH_TOKEN, then tries gh auth token; the last option may work if you are already signed in with GitHub CLI.

  1. Install the latest published version with Go:

    go install github.com/pinkpixel-dev/skyline@latest
  2. Run it with your GitHub username:

    skyline your-username

The documented default displays 53 recent weeks across 106 columns. You can adjust the number of weeks, maximum building height, palette, or output format with flags:

skyline your-username -weeks 30 -height 10 -theme synthwave -svg skyline.svg

This example asks for 30 weeks, caps building height at 10, selects the synthwave theme, and writes an SVG file instead of terminal output. The project documents 12 themes:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • neon (default), synthwave, matrix, and amber
  • ice, sunset, toxic, and vapor
  • crimson, mono, prism, and rainbow

These flags, defaults, and theme names reflect the project documentation available at the time of writing and may change as Skyline develops. The terminal needs truecolor support for the full palette; without it, Lip Gloss downsamples colors.

Put an automatically updated skyline in a profile README

GitHub displays a profile README from a repository named after the account username. Skyline’s example workflow regenerates the SVG on a schedule and publishes it to a separate output branch. The README can then embed the raw SVG from that branch.

  1. Create or use the repository named after your GitHub username, then adapt Skyline’s example GitHub Actions workflow to your account.

  2. Run the workflow manually once so it can create the output branch.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  3. Add an image reference to the profile README, replacing both instances of your-username with your account name:

    ![My skyline](https://raw.githubusercontent.com/your-username/your-username/output/skyline.svg)

The project’s example schedule runs nightly at 03:17 UTC, using the cron expression 17 3 * * *. That schedule is an example, not a requirement. The workflow may need adjustments to match your repository’s Actions permissions and token settings; consult GitHub’s current Actions permission controls if it cannot write the output branch.

What to check if the output looks wrong

The skyline is missing activity

The project author suggests trying a classic personal access token with read:user, stored as a repository secret named SKYLINE_TOKEN, if the generated result looks emptier than the activity shown when logged in. This is the project’s suggested workaround, not independent confirmation of GitHub’s current token behavior. Review the project workflow to see which secret it reads before changing authentication.

Terminal colors look muted

Full palette rendering depends on truecolor support in the terminal. If that is unavailable, Lip Gloss downsamples the colors.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

SVG characters look different

The SVG uses text glyphs and is displayed as an image with a system monospace font. A minimal font may substitute some glyphs, so the city can look different across systems.

Animation does not play

Skyline’s SVG animations turn off for viewers whose system has prefers-reduced-motion enabled. That respects the viewer’s motion preference; a still image is expected in that case.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to interpret the result

A tall building means a busier week according to Skyline’s visualization rules. It does not establish that the work was more difficult, useful, or high quality. Contribution counts describe recorded activity, not impact, and the skyline is best treated as a personal visual flourish rather than a performance measure.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.