Context References
Context references let you attach files, directories, git diffs, and URLs directly into your chat messages using @ syntax.
Syntax
@README.md summarize this file
@src/components/ list all components
@HEAD~1 show the last commit diff
@https://example.com fetch and summarize this page
File references
Attach a single file:
@src/auth.ts why is this function async?
Attach multiple files:
@src/auth.ts @src/middleware.ts how do these interact?
Directory references
Attach an entire directory:
@src/components/ what's the component structure?
Mona reads the directory listing and key files automatically.
Git references
Attach git diffs:
@HEAD~3 what's changed in the last 3 commits?
Attach a specific branch diff:
@main...feature-branch summarize the feature branch changes
Attach a specific file's history:
@src/api.ts:HEAD~5 what did this file look like 5 commits ago?
URL references
Attach web pages:
@https://docs.python.org/3/library/asyncio.html explain asyncio
Mona fetches the page and includes it in context.
Combined references
Mix and match:
@README.md @src/ @https://api.example.com/docs explain how this project uses the API
Limits
- Max files — 10 per message
- Max directories — 3 per message
- Max URLs — 5 per message
- Total context — Subject to model context window
Best practices
- Be specific — Reference exact files rather than entire directories
- Check size — Large files consume context window
- Use git refs — For code review,
@branch...mainis cleaner than pasting diffs - Combine with skills —
@src/k8s/ use the kubernetes skill to review these manifests
Troubleshooting
| Problem | Fix |
|---|---|
| "File not found" | Check the path is relative to the current directory |
| "Directory too large" | Reference specific files instead |
| "URL fetch failed" | Check internet connection and URL accessibility |
| Context overflow | Reduce the number of references or use smaller files |