GitHub Profile README and Actions Workflow Guide

Create the special profile repository, add visualizer Markdown, and safely run generators with GitHub Actions.

Step 1

Create your profile repository

GitHub displays a repository's README.md on your public profile when the public repository has the same name as your GitHub username.

💡
Example: For username Shik3i, the repository is located at github.com/Shik3i/Shik3i ↗.
  1. Go to github.com/new ↗.
  2. In the Repository name field, enter your exact GitHub username.
  3. Ensure the repository is set to Public.
  4. Select Add a README file.
  5. Click Create repository.
  6. Edit README.md; changes appear on your public profile after you commit them.
Step 2

Add an instant visualizer

Instant visualizers such as Kodama Bonsai Tree, GitHub Streak Stats, or Activity Graphs do not require a workflow in your repository. Their providers generate the image when GitHub requests its URL.

  1. Enter your username in the KoalaGitHub Hub.
  2. Select a supported theme.
  3. Click Copy Markdown.
  4. Edit your profile README.md on GitHub and paste the snippet where you want it to appear.
  5. Preview the profile and verify that the third-party image provider is available.
Step 3

Set up a generated visualizer

Generators such as the Contribution Grid Snake and Arcade Pac-Man Graph are not generated by KoalaGitHub and do not update dynamically when you change the username field. You must run the provided workflow in your own profile repository; it creates the SVG on a schedule and can also be started manually.

Add and verify the workflow

  1. Open your profile repository and create the workflow file named on the selected card, for example .github/workflows/snake.yml.
  2. Use Copy workflow (.yml) on that card and paste the code into the file.
  3. Commit it to the repository's default branch.
  4. Open the repository's Actions tab, select the workflow, and run Run workflow. Scheduled workflows run only from the default branch and may start later than their exact cron time.
  5. Wait for a successful run. Confirm that the generated file path matches the path in the Markdown snippet before adding it to README.md.
Example: .github/workflows/snake.yml
name: Generate Contribution Snake

on:
  schedule:
    - cron: "17 0 * * *"
  workflow_dispatch:

permissions:
  contents: write

jobs:
  build:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: Platane/snk/svg-only@d8f6715049803e982ee5ff501b6b9b7d5deeb09b
        with:
          github_user_name: ${{ github.repository_owner }}
          outputs: |
            output/github-snake.svg
            output/github-snake-dark.svg?palette=github-dark
      - uses: crazy-max/ghaction-github-pages@1d6ee9b181a81033a16bd707a1401afa978daab4
        with:
          target_branch: output
          build_dir: output
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
🔐
Permission and supply-chain note:
The copied workflow grants only contents: write, which is required to publish the generated file. Actions are pinned to immutable commit SHAs. Repository or organization policy may still block writes; if so, review Settings → Actions → General → Workflow permissions. Never copy an unreviewed workflow or grant broader permissions just to make a run pass.
Live Reference

Real-world example repository

Want to see a fully configured working profile README in action? Check out the reference implementation: