{"id":51642952,"url":"https://github.com/shardiwal/github-copilot-usage-tracker","last_synced_at":"2026-07-13T20:02:41.419Z","repository":{"id":367196775,"uuid":"1278790956","full_name":"shardiwal/github-copilot-usage-tracker","owner":"shardiwal","description":"Track and estimate GitHub Copilot token usage for every chat request","archived":false,"fork":false,"pushed_at":"2026-06-25T00:12:55.000Z","size":17714,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-25T02:07:01.097Z","etag":null,"topics":["copilot","github","usage-tracking"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shardiwal.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-24T05:22:33.000Z","updated_at":"2026-06-25T00:12:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shardiwal/github-copilot-usage-tracker","commit_stats":null,"previous_names":["shardiwal/github-copilot-usage-tracker"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/shardiwal/github-copilot-usage-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shardiwal%2Fgithub-copilot-usage-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shardiwal%2Fgithub-copilot-usage-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shardiwal%2Fgithub-copilot-usage-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shardiwal%2Fgithub-copilot-usage-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shardiwal","download_url":"https://codeload.github.com/shardiwal/github-copilot-usage-tracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shardiwal%2Fgithub-copilot-usage-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35434586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["copilot","github","usage-tracking"],"created_at":"2026-07-13T20:02:40.689Z","updated_at":"2026-07-13T20:02:41.413Z","avatar_url":"https://github.com/shardiwal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copilot Usage Tracker\n\n**Track and estimate GitHub Copilot token usage for every chat request**\n\nA production-quality VS Code extension that monitors Copilot interactions, estimates token consumption, and provides comprehensive analytics and insights.\n\n## Features\n\n### 📊 Dashboard\n- **Real-time Statistics**: Today's token count, requests, input/output tokens\n- **Interactive Charts**: Daily usage trends, hourly heatmaps\n- **Top Analytics**: Most active languages, workspaces, and files\n- **Session Tracking**: Monitor token usage across sessions\n\n### 📈 Sidebar Analytics View\n- **Today's Usage**: Quick overview of current day\n- **Weekly \u0026 Monthly Stats**: Track usage patterns over time\n- **Top Statistics**: Identify most active areas\n- **Quick Actions**: Easy access to dashboard and export\n\n### 💾 Local Storage\n- **SQLite Database**: Persistent local storage of all requests\n- **No Cloud Upload**: All data stays on your machine\n- **Automatic Cleanup**: Configurable history retention\n- **Database Backup**: Export database backups\n\n### 📥 Export Options\n- **CSV Export**: Compatible with Excel and data analysis tools\n- **JSON Export**: Full data export with metadata and analytics\n- **SQLite Backup**: Direct database backup for data portability\n\n### 🔔 Status Bar\n- **Token Counter**: Always visible token count for today\n- **Quick Access**: Click to open dashboard\n\n### ⚙️ Highly Configurable\n- **Enable/Disable Tracking**: Toggle extension on/off\n- **Notification Thresholds**: Set alerts at 100K, 250K, 500K tokens\n- **Custom Database Location**: Specify where to store data\n- **History Retention**: Configure max records to keep\n- **Status Bar Toggle**: Show/hide token counter\n\n## Installation\n\n### From VS Code\n1. Open VS Code\n2. Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)\n3. Search for \"Copilot Usage Tracker\"\n4. Click Install\n\n### From Source\n```bash\ngit clone https://github.com/yourusername/copilot-usage-tracker\ncd copilot-usage-tracker\nnpm install\nnpm run build\n```\n\n## Usage\n\n### Basic Commands\n\n**Open Dashboard**\n```\nCtrl+Shift+P \u003e Copilot Tracker: Open Dashboard\n```\n\n**Ask Copilot**\n```\nCtrl+Shift+P \u003e Copilot Tracker: Ask Copilot\n```\n\n**Export Data**\n```\nCtrl+Shift+P \u003e Copilot Tracker: Export CSV\nCtrl+Shift+P \u003e Copilot Tracker: Export JSON\n```\n\n**Clear History**\n```\nCtrl+Shift+P \u003e Copilot Tracker: Clear History\n```\n\n### Sidebar Usage Analytics\n1. Click the Copilot Usage icon in the activity bar\n2. View:\n   - Today's token count\n   - Today's requests\n   - Weekly and monthly stats\n   - Top languages and workspaces\n   - All-time statistics\n\n### Status Bar\n- Click the \"📊 XXK Tokens Today\" in the status bar to open the dashboard\n- Status updates every minute\n\n### Dashboard\nThe main dashboard provides:\n- **Quick Stats Cards**: Today's overview\n- **Usage Charts**: Visual representation of token consumption\n- **Top Analytics**: Languages, workspaces, files\n- **Recent Requests**: Table of recent interactions\n- **Export Options**: Download data in various formats\n\n## Configuration\n\n### Settings\nAccess via `Ctrl+,` and search for \"Copilot Tracker\":\n\n```json\n{\n  \"tracker.enabled\": true,\n  \"tracker.showStatusBar\": true,\n  \"tracker.showNotifications\": true,\n  \"tracker.autoExport\": false,\n  \"tracker.databaseLocation\": \"\",\n  \"tracker.maxHistory\": 10000,\n  \"tracker.notificationThresholds\": [100000, 250000, 500000]\n}\n```\n\n### Configuration Options\n\n| Setting | Type | Default | Description |\n|---------|------|---------|-------------|\n| `tracker.enabled` | boolean | `true` | Enable/disable token tracking |\n| `tracker.showStatusBar` | boolean | `true` | Show token count in status bar |\n| `tracker.showNotifications` | boolean | `true` | Show token threshold notifications |\n| `tracker.autoExport` | boolean | `false` | Automatically export periodically |\n| `tracker.databaseLocation` | string | `` | Custom database path (empty = default) |\n| `tracker.maxHistory` | number | `10000` | Maximum records to keep |\n| `tracker.notificationThresholds` | array | `[100k, 250k, 500k]` | Token alert thresholds |\n\n## Data Storage\n\n### Database Location\n- **Windows**: `%APPDATA%\\.vscode-copilot-tracker\\tracker.db`\n- **macOS**: `~/.vscode-copilot-tracker/tracker.db`\n- **Linux**: `~/.vscode-copilot-tracker/tracker.db`\n\n### Database Schema\n\n#### usage table\n```sql\nCREATE TABLE usage (\n  id INTEGER PRIMARY KEY,\n  timestamp TEXT,\n  workspace TEXT,\n  language TEXT,\n  file TEXT,\n  prompt TEXT,\n  response TEXT,\n  inputTokens INTEGER,\n  outputTokens INTEGER,\n  totalTokens INTEGER,\n  duration INTEGER,\n  sessionId TEXT,\n  createdAt DATETIME\n)\n```\n\n#### settings table\n```sql\nCREATE TABLE settings (\n  key TEXT PRIMARY KEY,\n  value TEXT,\n  updatedAt DATETIME\n)\n```\n\n## Token Estimation\n\nThe extension uses **tiktoken** to estimate token usage:\n- Based on OpenAI's GPT-3.5-turbo model encoding\n- Accurate estimates for both prompt and completion tokens\n- Support for multiple model encodings\n\n### Estimated Costs (USD)\nBased on OpenAI pricing:\n- **Input**: $0.0005 per 1K tokens\n- **Output**: $0.0015 per 1K tokens\n\n*Note: Actual costs may vary based on your GitHub Copilot plan*\n\n## Analytics\n\n### Available Metrics\n- **Total Requests**: Lifetime request count\n- **Total Tokens**: Sum of all tokens used\n- **Average Tokens**: Mean tokens per request\n- **Largest Prompt/Response**: Token count of largest interactions\n- **Most Active Language**: Language with highest token usage\n- **Most Active Workspace**: Workspace with highest usage\n- **Tokens Per Day**: Daily breakdown\n- **Tokens Per Workspace**: Workspace breakdown\n- **Tokens Per Language**: Language breakdown\n\n## Privacy \u0026 Security\n\n✅ **Local-First**: All data stored locally on your machine\n✅ **No Network Requests**: Extension doesn't send data to any server\n✅ **No Authentication**: No login or external dependencies\n✅ **Open Source**: Fully transparent code\n✅ **Secure Storage**: SQLite with optional encryption\n\n## Keyboard Shortcuts\n\n- `Ctrl+Shift+P` → Open command palette\n- Search \"Copilot Tracker\" for available commands\n\n## Troubleshooting\n\n### Extension Not Working\n1. Check VS Code version: Must be 1.105+\n2. Reload window: `Ctrl+R` (Cmd+R on macOS)\n3. Check extension logs: View → Output → Select \"Copilot Usage Tracker\"\n\n### Database Issues\n1. Delete the database file and restart\n2. Or use \"Clear History\" command\n3. Check `tracker.databaseLocation` setting\n\n### Missing Data\n- Ensure `tracker.enabled` is true\n- Check if requests are being made through the Ask command\n- Verify database location has write permissions\n\n### Notifications Not Showing\n1. Check `tracker.showNotifications` is true\n2. Check `tracker.notificationThresholds` setting\n3. Verify notification permissions in VS Code\n\n## Performance\n\n- **Minimal Overhead**: Token estimation is fast (\u003c1ms)\n- **Background Updates**: Analytics calculate in background\n- **Auto-Cleanup**: Old records pruned automatically\n- **Efficient Storage**: SQLite with proper indexing\n\n## Development\n\n### Build\n```bash\nnpm install\nnpm run build\n```\n\n### Development Mode\n```bash\nnpm run dev\n```\n\n### Lint\n```bash\nnpm run lint\n```\n\n### Architecture\n\n```\nsrc/\n├── extension.ts              # Main entry point\n├── commands/                 # Command implementations\n│   ├── askCopilot.ts        # Ask command\n│   ├── exportCsv.ts         # CSV export\n│   ├── exportJson.ts        # JSON export\n│   └── clearHistory.ts      # Clear history\n├── tracker/                  # Core tracking logic\n│   ├── database.ts          # SQLite management\n│   ├── tokenEstimator.ts    # Token estimation\n│   ├── statistics.ts        # Analytics\n│   ├── sessionManager.ts    # Session tracking\n│   ├── logger.ts            # Logging\n│   └── models.ts            # TypeScript types\n├── webview/                  # Dashboard UI\n│   ├── dashboardProvider.ts # Webview provider\n│   ├── dashboard.html       # HTML template\n│   ├── dashboard.css        # Styles\n│   └── dashboard.js         # Client logic\n├── tree/                     # Sidebar tree view\n│   └── usageTreeProvider.ts # Tree implementation\n├── statusbar/                # Status bar\n│   └── statusBar.ts         # Status bar implementation\n└── utils/                    # Utility functions\n    ├── date.ts              # Date utilities\n    ├── format.ts            # Format utilities\n    └── config.ts            # Configuration\n```\n\n## Technologies\n\n- **TypeScript**: Strongly typed, production-ready code\n- **VS Code API**: Latest extension APIs\n- **SQLite**: Reliable local database\n- **tiktoken**: Accurate token estimation\n- **Webview API**: Modern dashboard UI\n\n## Limitations\n\n- Only tracks requests through the \"Ask Copilot\" command\n- Token estimation based on model encoding (may vary slightly from actual)\n- Requires VS Code 1.105 or later\n- Database size depends on history retention setting\n\n## Contributing\n\nContributions welcome! Please follow:\n1. TypeScript strict mode\n2. No `any` types\n3. Proper error handling\n4. Full documentation\n\n## License\n\nMIT\n\n## Support\n\n- **Issues**: GitHub Issues\n- **Questions**: GitHub Discussions\n- **Docs**: See README and inline code documentation\n\n## Acknowledgments\n\n- Token estimation powered by **tiktoken**\n- Built with **VS Code Extension API**\n- Database powered by **better-sqlite3**\n\n---\n\n**Happy tracking! 📊**\n\nFor more information, visit the [GitHub repository](https://github.com/rshardiwal/github-copilot-usage-tracker)\n[Download VS Code Extension](copilot-usage-tracker-0.1.5.vsix)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshardiwal%2Fgithub-copilot-usage-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshardiwal%2Fgithub-copilot-usage-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshardiwal%2Fgithub-copilot-usage-tracker/lists"}