🗒️ Repo Notes for VS Code

Manage your notes securely in private GitHub repositories
True privacy, native folders, and powerful search - all from VS Code
Report Bug • Request Feature
✨ Why Repo Notes?
A secure note-taking solution that uses private GitHub repositories for true privacy and access control. Unlike GitHub Gists (which are accessible to anyone with the URL), your notes in private repositories are genuinely private.
🎯 Key Features
- 🔐 True Privacy - Private GitHub repositories with proper access control
- 📁 Native Folders - Real Git directory structure, no hacks required
- 🏷️ GitHub Topics - Native tagging using repository topics
- 🔍 Powerful Search - Server-side GitHub Search API for repositories and code
- 💬 Issues & Comments - Add notes and discussions using GitHub Issues
- ⚡ Direct Editing - Edit files in VS Code with automatic sync
- 🎯 Organized - Tree view for easy navigation
🚀 Getting Started
Installation
- Install the extension from VS Code Marketplace
- Click the Repo Notes icon in the Activity Bar
- Sign in with GitHub (requires
repo scope)
- Start creating your note repositories!
First Steps
- Sign In: Click "Sign in with GitHub" in the Repo Notes panel
- Create Repository: Click the
+ icon to create your first note repository
- Add Files: Create files and folders directly in VS Code
- Organize: Use GitHub Topics to tag your repositories
- Search: Use the powerful search to find notes across all repositories
📖 Features in Detail
🔐 True Privacy
Unlike GitHub Gists' "secret" mode (which just hides from search but is accessible via URL), Repo Notes uses private GitHub repositories with proper access control. Only you (and collaborators you explicitly add) can access your notes.
📁 Native Folder Support
Real Git directory structure means you can organize notes however you want:
my-notes/
├── work/
│ ├── meetings/
│ └── projects/
├── personal/
│ └── ideas/
└── research/
└── articles/
Tag your repositories with GitHub Topics for easy organization:
work, personal, research
javascript, python, golang
tutorial, reference, draft
🔍 Powerful Search
Server-side search powered by GitHub Search API:
- Search repository names and descriptions
- Search code content across all your note repositories
- Fast and scalable
Use GitHub Issues for:
- TODO lists
- Meeting notes
- Discussions
- Annotations
🎮 Usage
Repository Commands
- Create Repository: Create a new note repository
- Delete Repository: Remove a repository
- Rename Repository: Change repository name
- Update Description: Update repository description
- Toggle Visibility: Switch between public/private
- Open on GitHub: View repository in browser
- Copy URL: Copy repository or clone URL
- Refresh: Reload repository list
File Operations
- Open File: Edit files directly in VS Code
- Save Changes: Files auto-sync to GitHub
- Create Folders: Native directory structure
- Upload Files: Drag and drop or create new
Issue Operations
- Create Issue: Add a note or TODO
- Add Comment: Comment on issues
- Delete Comment: Remove comments
- View on GitHub: Open issue in browser
⚙️ Configuration
Settings
{
// Default visibility for new repositories
"repoNotes.defaultVisibility": "private",
// Auto-refresh on changes
"repoNotes.autoRefresh": true,
// Maximum file size for direct editing (MB)
"repoNotes.maxFileSizeMB": 10
}
Keyboard Shortcuts
Ctrl+Alt+N / Cmd+Alt+N: Create new repository
Ctrl+Alt+R / Cmd+Alt+R: Refresh repositories
🔄 Migration from Gist Editor
This extension is the successor to Gist Editor, refactored to use private GitHub repositories for better security.
Key Differences
| Feature |
Gist Editor (v2.x) |
Repo Notes (v3.x) |
| Privacy |
URL-based (not secure) |
True private repos |
| Folders |
Description parsing |
Native Git directories |
| Tags |
Comment workaround |
GitHub Topics API |
| Search |
Client-side |
Server-side GitHub API |
| Binary Files |
Git workarounds |
Direct upload |
| URI Scheme |
gist:// |
repo:// |
| OAuth Scope |
gist |
repo |
Migration Steps
Note: Automatic migration is not yet available. Manual steps:
- Install Repo Notes v3.0
- Sign in with GitHub (you'll need to re-authenticate with
repo scope)
- For each gist you want to migrate:
- Create a new repository in Repo Notes
- Copy files from the gist to the new repository
- Add relevant topics (tags)
- Delete old gists as needed
🛠️ Development
Building from Source
# Clone the repository
git clone https://github.com/lywedo/repo-notes.git
cd repo-notes
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Run in development mode
npm run watch
# Package extension
npm run package
Testing
# Run tests
npm test
# Run tests in watch mode
npm run watch-tests
📊 Technical Details
Architecture
- TypeScript - Type-safe codebase
- GitHub APIs: Repository, Contents, Tree, Search, Topics, Issues
- VS Code APIs: TreeDataProvider, FileSystemProvider, Authentication
- OAuth: GitHub OAuth with
repo scope
- Caching: Intelligent caching for performance
API Usage
The extension tracks GitHub API usage and rate limits. View statistics:
- Click "View API Usage Statistics" in the tree view
- Check the status bar for remaining API calls
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add some AmazingFeature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
📞 Support