VS Code sidebar for curating documentation across repositories. Select files, copy paths or content, and paste into AI coding assistants.
The Problem
AI coding assistants need file context, but gathering it is tedious — especially across multiple repos and external doc folders. You end up manually copying paths, switching between explorers, and losing track of what you've shared.
Scrolls gives you a single panel to manage all your documentation sources, select what matters, and copy it out in one keystroke.
How It Works
- Check files in the Scrolls sidebar
- Copy paths or content (
A for paths, Shift+C for content)
- Paste into your AI assistant
Features
Documentation Sources
- Workspace globs — match files by pattern:
"**/*.md", "src/**/*.ts"
- External folders — include docs from outside your workspace with optional pattern filter
- External files — add individual files by absolute path
- Global sources — external sources available in every workspace (stored in user settings, not per-project)
Add sources via the + button in the panel header, or edit settings.json directly.
View Modes
Press T to cycle through:
- Flat — all files in a single list
- Tree — hierarchical folder structure
- Grouped — files organized by source
Smart Filter
Press F to open filename search. Narrows the file list to matching entries. Shift+F to clear.
Graph Visualization
Scrolls parses links between your documentation files and renders an interactive graph.
- Full graph — all files and their link structure (toolbar button)
- Local graph — a single file and its neighbors at configurable depth (right-click a file)
- Link types — markdown links, wiki links
[[page]], HTML <a> tags, reference-style links (each toggleable)
- Interaction — click a node to open the file, double-click for its local graph
- Layout — choose from cose, circle, breadthfirst, grid, or concentric algorithms
- Node sizing — fixed or scaled by connection count
- Node coloring — by group, in-degree, out-degree, or checked status
- Orphans & broken links — optionally show disconnected files and links to missing files
- Export — save the graph as PNG
Copy for AI Context
C — copy the focused file's relative path (absolute for external files)
Shift+C — copy the focused file's content
A — copy all checked files' relative paths
- Token estimate badge in the panel header shows approximate token count for checked files
Keyboard Shortcuts
All shortcuts work when the Scrolls panel is focused:
| Key |
Action |
Space |
Toggle checkbox |
Enter / V |
Open file |
Shift+V |
Open markdown preview |
C |
Copy path (relative to workspace, absolute for external) |
Shift+C |
Copy file content |
A |
Copy all checked paths |
X |
Clear all checked |
F / Shift+F |
Open / clear filter |
T |
Toggle view mode |
R |
Reveal in file explorer |
? |
Show shortcuts |
Configuration
Sources & Exclude
In .vscode/settings.json (workspace):
{
"scrolls.sources": [
"**/*.md",
"src/**/*.ts",
{ "path": "/absolute/path/to/folder", "pattern": "**/*.md" },
{ "path": "/absolute/path/to/file.txt" }
],
"scrolls.exclude": [
"**/node_modules/**",
"**/.git/**"
]
}
Default sources: ["**/*.md"]. Default excludes: ["**/node_modules/**", "**/.git/**"].
Global Sources
In your user settings.json (available in all workspaces):
{
"scrolls.globalSources": [
{ "path": "/shared/docs", "pattern": "**/*.md" },
{ "path": "/path/to/style-guide.md" }
]
}
Graph Settings
| Setting |
Default |
Description |
scrolls.graph.linkTypes.markdownLinks |
true |
Parse [text](https://github.com/structivist/scrolls/blob/HEAD/path.md) links |
scrolls.graph.linkTypes.wikiLinks |
true |
Parse [[page]] links |
scrolls.graph.linkTypes.htmlLinks |
false |
Parse <a href="..."> links |
scrolls.graph.linkTypes.referenceLinks |
true |
Parse [text][ref] reference links |
scrolls.graph.showOrphans |
false |
Show files with no connections |
scrolls.graph.showBrokenLinks |
true |
Show links to non-existent files |
scrolls.graph.defaultLayout |
"cose" |
Layout algorithm (cose, circle, breadthfirst, grid, concentric) |
scrolls.graph.nodeSize |
"byConnections" |
Node sizing (fixed, byConnections) |
scrolls.graph.colorBy |
"group" |
Node coloring (group, inDegree, outDegree, checked) |
scrolls.graph.localGraphDepth |
2 |
Depth for local graph view (1–5) |
Requirements
License
MIT