Documentation that lives with your code
Your codebase is already full of TODOs, warnings, and explanations buried in comments. Add @gitian and they become structured, browsable documentation — no wiki migration, no new tools, no starting from scratch.
Session tokens are encrypted with AES-256-GCM. The key is derived from SESSION_SECRET.
Capture
@gitian in a comment. That's the entire migration.
Structure
docs/ directories, file pairing, wikilinks — your repo becomes the docs.
Compose
Directives pull live annotations into markdown. Code changes, docs update.
Documentation shouldn't be a second job
Every workaround has a why. Every edge case has a story. Gitian keeps those stories where they belong — next to the code.
No more context switching
You understand code while you're writing it. Five minutes later in a wiki, you're reconstructing from memory. Gitian keeps docs in the same file, same commit, same thought.
No more drift
Same commit, same branch, same PR. When code changes, the docs beside it change too. Delete a function and its documentation goes with it.
No more ghost pages
Delete a module and its wiki page lives on forever, misleading everyone who finds it. In Gitian, docs are the repo — nothing outlives its source.
The migration
Your code is already documented. You just can't see it.
Every codebase is full of invisible documentation — TODOs, deprecation warnings, explanations buried in comment blocks. They're useful the moment you read them, then forgotten the moment you scroll past.
Add @gitian to the comments you've already written. That's it. That's the migration.
Features
Rich docs, right in the browser
Wikilinks, callouts, diagrams, math, and more — rendered directly from your GitHub repos. GitLab and self-hosted git support coming soon.
Code Annotations
Tag functions with @gitian for annotated docs, or use sub-tags like @gitian:todo and @gitian:deprecated for semantic categorization. Add #global to surface annotations on the dashboard. Also picks up your existing @param and TODO comments automatically.
Directives
Pull live annotations into markdown with {{annotation:@todo}}. Code changes, docs update automatically.
Wikilinks
Navigate between docs with [[wikilinks]] and aliases, resolved across your repository.
Use environment variables for secrets
This will invalidate all active sessions
Callouts
Rich callout blocks with proper icons, colors, and nesting support.
Mermaid Diagrams
Flowcharts, sequence diagrams, and ERDs render inline.
KaTeX Math
Inline and block math with full LaTeX support via KaTeX.
Editor Integrations
Plugins for VS Code, Zed, and Obsidian are coming soon — write and preview annotations without leaving your editor.
Line Permalinks
Click line numbers to select, right-click for a context menu — copy Gitian links, GitHub permalinks, or source code.
GitHub Integration
Install the Gitian app on specific repos or orgs — no broad OAuth scopes. Deep links to files and lines. GitLab support coming soon.
Overview
Annotations
Languages
Repo Dashboard
At-a-glance overview with annotation breakdowns, language stats, recent commits, releases, and documentation — all loading progressively.
How It Works
Three layers, one repo
Capture knowledge in comments. Structure it with docs/ directories. Compose it with directives. All inside your existing git workflow.
Docs Discovery
Gitian scans your repository for docs/ and .docs/ directories to locate documentation. Multiple docs directories at any depth are merged into a single view.
Source
auth.ts
Docs
docs/auth.ts.md
Name-based Pairing
Source files are automatically paired with their markdown companion inside docs/ directories by matching filenames.
# auth.ts
Handles user authentication via OAuth2. Manages token refresh, session storage, and logout flows.
Tabbed Result
Files with a documentation companion render a tabbed UI — a Docs tab with the rendered markdown and a Source tab with syntax-highlighted code.
Your code already knows what it does. Gitian helps it say so.
If you've ever written a TODO, a deprecation warning, or a comment explaining why — you've already started. Sign in, install the app on a repo, and see what your code has been saying all along.