{"id":29806338,"url":"https://github.com/chiphuyen/sniffly","last_synced_at":"2025-08-09T07:56:21.194Z","repository":{"id":304947508,"uuid":"1020305299","full_name":"chiphuyen/sniffly","owner":"chiphuyen","description":"Claude Code dashboard with usage stats, error analysis, and sharable feature","archived":false,"fork":false,"pushed_at":"2025-07-28T05:34:58.000Z","size":4535,"stargazers_count":675,"open_issues_count":4,"forks_count":55,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-05T07:43:45.959Z","etag":null,"topics":["agent","ai","analytics","coding"],"latest_commit_sha":null,"homepage":"https://sniffly.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chiphuyen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-07-15T16:53:39.000Z","updated_at":"2025-08-05T07:35:51.000Z","dependencies_parsed_at":"2025-07-17T15:15:31.648Z","dependency_job_id":"7489b504-afce-4105-b3aa-f97eed867f10","html_url":"https://github.com/chiphuyen/sniffly","commit_stats":null,"previous_names":["chiphuyen/sniffly"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/chiphuyen/sniffly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiphuyen%2Fsniffly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiphuyen%2Fsniffly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiphuyen%2Fsniffly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiphuyen%2Fsniffly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chiphuyen","download_url":"https://codeload.github.com/chiphuyen/sniffly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chiphuyen%2Fsniffly/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269548494,"owners_count":24436111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-09T02:00:10.424Z","response_time":111,"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":["agent","ai","analytics","coding"],"created_at":"2025-07-28T14:05:57.713Z","updated_at":"2025-08-09T07:56:21.139Z","avatar_url":"https://github.com/chiphuyen.png","language":"Python","funding_links":[],"categories":["监控与分析","Claude Code Ecosystem","GUIs \u0026 Web UIs","Monitoring \u0026 Analytics"],"sub_categories":["Monitoring \u0026 Analytics"],"readme":"# Sniffly - Claude Code Analytics Dashboard\n\nAnalyze Claude Code logs to help you use Claude Code better.\n\n[Website](https://sniffly.dev) | [Quickstart](#-quickstart) | [Features](#-features) | [Sharable dashboard](#-sharing-your-dashboard)\n\n## 📊 Features\n### Understanding your usage patterns\n\u003ccenter\u003e\n\u003cimg src=\"assets/features/stats.png\" width=\"800\" /\u003e\n\u003c/center\u003e\n\n### Error breakdown\n_See where Claude Code makes mistakes so that you avoid these mistakes._\n\n\u003ccenter\u003e\n\u003cimg src=\"assets/features/error-type.png\" width=\"500\" /\u003e\n\u003c/center\u003e\n\n### Message history analysis\n_Walk through all your instructions and share them with your coworkers if needed._\n\n\u003ccenter\u003e\n\u003cimg src=\"assets/features/command-walkthrough.png\" width=\"1000\" /\u003e\n\u003c/center\u003e\n\n\n## 🚀 Quickstart\n- Requirement: Python 3.10+\n\n### With UV (recommended)\nMake sure you have `uv` installed! https://github.com/astral-sh/uv\n\n```bash\n# One-time execution (no installation needed)\nuvx sniffly@latest init\n```\n\n```bash\n# Install the package\nuv tool install sniffly@latest\nsniffly init\n```\n\nAfter running `sniffly init`, access your dashboard on your browser at http://localhost:8081 (or whichever host/port you choose).\n\nIf you run Sniffly on a remote server, use [port forwarding](https://www.reddit.com/r/HomeNetworking/comments/i7ijiz/a_guide_to_port_forwarding/) to open the browser on your local computer.\n\n### With pip\n\n```bash\npip install sniffly\nsniffly init\n```\n\n### From source\n```bash\ngit clone https://github.com/chiphuyen/sniffly.git\ncd sniffly\npip install -e .\nsniffly init\n```\n\n## 🔧 Configuration\n\n### Common Settings\n\n```bash\n# Change port (default: 8081)\nsniffly config set port 8090\n\n# Disable auto-opening browser\nsniffly config set auto_browser false\n\n# Show current configuration\nsniffly config show\n```\n\n### All Configuration Options\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `port` | 8081 | Server port |\n| `host` | 127.0.0.1 | Server host |\n| `auto_browser` | true | Auto-open browser on start |\n| `cache_max_projects` | 5 | Max projects in memory cache |\n| `cache_max_mb_per_project` | 500 | Max MB per project |\n| `messages_initial_load` | 500 | Initial messages to load |\n| `max_date_range_days` | 30 | Max days for date range selection |\n\nSee full [CLI Reference](docs/cli-reference.md) for all options and commands.\n\n\n## 💡 Sharing Your Dashboard\nYou can create a link to share your project's stats and instructions with your coworkers.\n\n1. Click the \"📤 Share\" button in your dashboard\n2. Choose privacy options:\n   - **Private**: Only people with the link can view\n   - **Public**: Listed in the public gallery\n   - **Include Commands**: Share your actual command text\n3. Copy and share the generated link\n\n## 🚨 Troubleshooting\n\n### Common Issues\n\n```bash\nsniffly help\n```\n\n**Port already in use?**\n```bash\n# Use a different port\nsniffly init --port 8090\n\n# Or change default\nsniffly config set port 8090\n```\n\n**Browser doesn't open?**\n```bash\n# Check setting\nsniffly config show\n\n# Enable auto-browser\nsniffly config set auto_browser true\n\n# Or manually visit http://localhost:8081\n```\n\n**Configuration issues?**\n```bash\n# View all settings and their sources\nsniffly config show\n\n# Reset a setting to default\nsniffly config unset port\n\n# Remove all custom config\nrm ~/.sniffly/config.json\n```\n\nFor more issues, see [GitHub Issues](https://github.com/chiphuyen/sniffly/issues).\n\n## 🔐 Privacy\n\nSniffly runs entirely on your local machine:\n- ✅ All data processing happens locally\n- ✅ No telemetry\n- ✅ Your conversations never leave your computer\n- ✅ Shared dashboards are opt-in only\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n## 🔗 Links\n\n- **Homepage**: [sniffly.dev](https://sniffly.dev)\n- **Documentation**: [Full CLI Reference](docs/cli-reference.md)\n- **Issues**: [GitHub Issues](https://github.com/chiphuyen/sniffly/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiphuyen%2Fsniffly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchiphuyen%2Fsniffly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchiphuyen%2Fsniffly/lists"}