Documentation

For LLMs

How to embed a Gitfile banner, tune its URL, and understand what's cached and what's public.

Embedding

Paste the Markdown snippet from your dashboard into your GitHub profile README.md. It renders as an SVG image that GitHub fetches fresh on every profile view.

[![Gitfile](https://gitfile.dev/api/v1/banner/octocat.svg)](https://gitfile.dev)

Public profile page

Every GitHub username has a page at gitfile.dev/{username} — a readable summary of their public GitHub activity: a derived "developer type" from their language mix, top languages, pinned repos, and a contribution heatmap.

If that username belongs to a Gitfile account with a public profile, the page also embeds their real, live banner and links back to their dashboard. If it doesn't (or the account hasn't signed in yet), the page still renders from GitHub's public data alone, with a preview of what their banner could look like and a prompt to claim it.

The same Dashboard → Privacy → Public profile toggle that controls your banner URL controls this page too — turning it off replaces both with a private placeholder.

Terminal / curl

The same banner URL also works from a terminal — no image, no browser. Called from curl, Wget, or HTTPie with no explicit format, it detects the caller isn't a browser and returns a plain-text, ANSI-colored card instead of an SVG.

curl "https://gitfile.dev/octocat?cols=$(tput cols)&lines=$(tput lines)"

Pass your real terminal size with cols/lines — curl can't detect this itself, so $(tput cols) and $(tput lines) from your shell give it the real numbers. Without them (or with a terminal too narrow for even the most compact layout), it prints a short plain-text prompt asking for the size instead of guessing and risking a broken box.

It restyles exactly like the image does — ?theme=, ?style=, ?accentColor=, and every per-stat toggle apply to the text render too:

curl "https://gitfile.dev/octocat?style=terminal&theme=dark&accentColor=%2330D158"

Drop it in a dotfiles repo, a shell profile, or a CI job's welcome banner. The full cols/lines/color reference lives in the API reference.

URL parameters

Beyond .svg/.png/.txt (or the equivalent ?format=), the banner endpoint takes per-request overrides — no auth required — for theme, layout, style, accent color, which stats show, and the terminal-only cols/lines/color params above. None of these touch your saved config — they only restyle that one response. The full list is in the API reference.

Caching & rate limits

Banners are rendered once and served from an edge cache until something invalidates them — never per view. Saving a change in the dashboard (or calling POST /api/v1/config/regenerate) invalidates the cache instantly; otherwise it refreshes on a rolling ~24h schedule so stats stay current even if you never touch your config.

Authenticated API requests are limited to 60 requests/minute per API key; the public banner endpoint is limited per client IP.

Security & privacy FAQ

What data does Gitfile store?

Your GitHub or GitLab profile fields you've chosen to show, and your banner configuration. We never ask for a password. If you explicitly opt in to see organization/group-restricted repos by pasting a personal access token, it's encrypted at rest and never stored or transmitted in plain text.

How do I revoke access?

From Dashboard → Privacy → Disconnect GitHub or Disconnect GitLab. This immediately invalidates our stored token and clears cached data for that provider.

What if I turn off "Public profile"?

Your banner URL keeps working but returns a generic placeholder image — it never 404s in a way that reveals whether your account exists.