{"id":26894075,"url":"https://github.com/hyperb1iss/siren","last_synced_at":"2026-05-05T00:38:02.913Z","repository":{"id":279890555,"uuid":"938567807","full_name":"hyperb1iss/siren","owner":"hyperb1iss","description":"A multi-language linting frontend that makes code quality an awesome experience with smart tool selection, vibrant output, and framework detection.","archived":false,"fork":false,"pushed_at":"2025-03-19T04:48:06.000Z","size":372,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T16:11:15.465Z","etag":null,"topics":["cli","code-quality","developer-tools","formatter","html","javascript","linter","multi-language","python","rust","static-analysis","terminal-ui","typescript"],"latest_commit_sha":null,"homepage":"https://hyperbliss.tech/projects/siren","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperb1iss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"hyperb1iss","ko_fi":"hyperb1iss"}},"created_at":"2025-02-25T06:46:01.000Z","updated_at":"2025-03-19T18:12:10.000Z","dependencies_parsed_at":"2025-02-28T10:20:34.813Z","dependency_job_id":"f9f919ae-7cb2-4461-b18a-42e9c9ea6dc5","html_url":"https://github.com/hyperb1iss/siren","commit_stats":null,"previous_names":["hyperb1iss/siren"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperb1iss%2Fsiren","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperb1iss%2Fsiren/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperb1iss%2Fsiren/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperb1iss%2Fsiren/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperb1iss","download_url":"https://codeload.github.com/hyperb1iss/siren/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246558050,"owners_count":20796696,"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","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":["cli","code-quality","developer-tools","formatter","html","javascript","linter","multi-language","python","rust","static-analysis","terminal-ui","typescript"],"created_at":"2025-03-31T23:59:51.511Z","updated_at":"2026-05-05T00:37:57.890Z","avatar_url":"https://github.com/hyperb1iss.png","language":"Rust","funding_links":["https://github.com/sponsors/hyperb1iss","https://ko-fi.com/hyperb1iss","https://ko-fi.com/hyperb1iss)!"],"categories":[],"sub_categories":[],"readme":"# 🧜‍♀️ SIREN ✨\n\n\u003e _Code quality enchantress with style_\n\n[![Status](https://img.shields.io/badge/status-in_development-blue?logo=github\u0026logoColor=white)](https://github.com/hyperb1iss/siren)\n[![Language](https://img.shields.io/badge/built_with-Rust-orange?logo=rust)](https://www.rust-lang.org/)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue?logo=apache)](LICENSE)\n[![Tools](https://img.shields.io/badge/supported_tools-15%2B-purple?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY2eiIvPjwvc3ZnPg==)](README.md#-supported-languages--tools)\n[![Languages](https://img.shields.io/badge/languages-5%2B-green?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xMCAyMGw0LTE2bTQgMTJsNy03LTctN00zIDE2bDctNy03LTciLz48L3N2Zz4=)](README.md#-supported-languages--tools)\n\nSiren is a powerful frontend for multiple linting tools that makes maintaining code quality a delightful experience. Inspired by the mythological sirens, Siren draws developers in with beautiful vibrant output, smart defaults, and an intuitive interface - making code quality standards irresistible to adopt.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://via.placeholder.com/800x300/8A2BE2/FFFFFF?text=SIREN+Quality+Guardian\" alt=\"Siren Demo\" /\u003e\n\u003c/p\u003e\n\n## ✨ Core Features\n\n- 🌈 **Multi-language Support** - Currently works with Rust, Python, JavaScript/TypeScript and HTML/Templates\n- 🔍 **Framework Detection** - Automatically identifies project types and frameworks\n- 🧙‍♀️ **Smart Tool Selection** - Chooses the right linters based on detected technologies\n- 🪄 **Unified Interface** - One command to rule all your linting needs\n- 💅 **Vibrant Output** - Colorful, stylish terminal experience\n- ⚙️ **Configuration Flexibility** - Smart defaults with extensive customization options\n- ⚡ **High Performance** - Lightning-fast execution with Rust's efficiency\n- 🔧 **Auto-fixing** - Automatically resolves common issues when possible\n- 🔄 **Git Integration** - Focuses on recently modified files for efficient workflows\n- 📊 **Interactive Progress** - Live-updating spinners show the status of each tool\n\n## 🚀 Installation\n\n### Using Cargo (Coming Soon)\n\n```bash\ncargo install siren-lint\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/hyperb1iss/siren\ncd siren\ncargo build --release\n```\n\n### Homebrew (Coming Soon)\n\n```bash\nbrew install hyperb1iss/tap/siren\n```\n\n## 🎯 Quick Start\n\n```bash\n# Run Siren with no arguments to check the entire project\nsiren\n\n# Format your code beautifully across all languages\nsiren format\n\n# Check just the files you've changed\nsiren --git-modified\n\n# Automatically fix what can be fixed\nsiren fix\n\n# Focus on a specific directory or file\nsiren check src/components/\n\n# Target a specific language\nsiren check --lang rust\n\n# Format and fix in one command\nsiren format-fix src/\n```\n\n## 💖 Currently Supported Languages \u0026 Tools\n\nSiren supports a growing collection of languages and tools, automatically selecting the best options for your project.\n\n| Language          | Formatting              | Linting                | Type Checking | Fixing                  |\n| ----------------- | ----------------------- | ---------------------- | ------------- | ----------------------- |\n| 🦀 Rust           | `rustfmt`               | `clippy`               | -             | `clippy --fix`          |\n| 🐍 Python         | `black`, `ruff format`  | `pylint`, `ruff check` | `mypy`        | `ruff --fix`            |\n| 🌐 JavaScript     | `prettier`              | `eslint`               | -             | `eslint --fix`          |\n| 📘 TypeScript     | `prettier`              | `eslint`               | -             | `eslint --fix`          |\n| 🖥️ HTML/Templates | `djlint`                | `djlint`               | -             | `djlint --reformat`     |\n\n### Coming Soon\n\n- 🎨 CSS/SCSS: `prettier`, `stylelint`\n- 🐹 Go: `gofmt`, `golangci-lint`\n- 💎 Ruby: `rubocop`, `sorbet`\n- 📝 Markdown: `prettier`, `markdownlint`\n- And many more...\n\n## ⚙️ Configuration: Opinionated But Flexible\n\nSiren believes in \"convention over configuration\" but respects your preferences.\n\n### Philosophy\n\n- **Works Out-of-box** - Zero config needed for common projects\n- **Progressive Configuration** - Add settings only when you need to customize\n- **Sensible Defaults** - We make the hard choices so you don't have to\n- **Override Anything** - But you can always do it your way\n\n### Configuration File\n\nSiren uses TOML for configuration. Place a `.siren.toml` file in your project root:\n\n```toml\n# .siren.toml example\n\n[general]\nfail_level = \"error\"\nuse_relative_paths = true\n\n[languages.python] \nline_length = 100\nignore_rules = [\"E203\", \"W503\"]\n\n[tools.eslint]\nextra_args = [\"--max-warnings\", \"10\"] \nauto_fix = true\n```\n\n## 💎 Advanced Use Cases\n\n### For Developers\n\n```bash\n# Format your code beautifully across all languages\n$ siren format\n\n# Check just the files you've changed\n$ siren --git-modified\n\n# Use glob patterns to check specific files or directories\n$ siren check . \"src/components/**/*.tsx\" \"lib/**/*.js\"\n\n# Fix issues in specific parts of your codebase\n$ siren fix core/templates \"**/*.html\"\n\n# Chain commands for workflow efficiency\n$ siren format-fix --git-modified\n```\n\n### For Team Leads\n\n```bash\n# Run comprehensive checks before a release\n$ siren check --strict\n\n# Integrate with CI pipeline\n$ siren check --ci --fail-level=error\n\n# Create a team config (coming soon)\n$ siren init --team\n```\n\n### For Newcomers\n\n```bash\n# See what Siren detects in your project\n$ siren detect\n\n# Learn what tools are available\n$ siren list-tools\n\n# Get suggestions for improving code quality (coming soon)\n$ siren suggest\n```\n\n## 🔮 Integration Tips\n\n### Shell Aliases\n\n```bash\n# Add to your .bashrc or .zshrc\nalias lint=\"siren\"\nalias lintfix=\"siren fix\"\nalias format=\"siren format\"\nalias check=\"siren --git-modified\"\n```\n\n### Git Hooks\n\n```bash\n# In .git/hooks/pre-commit\nsiren check --git-staged --fail-level=error\n```\n\n### CI/CD Integration\n\n```yaml\n# .github/workflows/quality.yml\nsteps:\n  - name: Check code quality\n    run: siren check --ci --fail-level=error\n```\n\n## 🌊 Development Status\n\nSiren is currently in active development. Check the [Project Checklist](docs/CHECKLIST.md) for the current status and roadmap.\n\nThe following features are implemented and working:\n- ✅ Core architecture and command structure\n- ✅ Tool registry and plugin system\n- ✅ Support for Rust, Python, and HTML tools\n- ✅ Partial support for JavaScript/TypeScript tools\n- ✅ Project detection and file collection\n- ✅ Basic configuration loading and defaults\n- ✅ Colorful terminal output\n\nComing soon:\n- 🔄 Enhanced reporting (HTML, CI annotations)\n- 🔄 Additional language support\n- 🔄 More comprehensive documentation\n- 🔄 Configuration validation and wizards\n- 🔄 Performance optimizations\n\n## 🤝 Contributing\n\nContributions are what make the open source community such a vibrant place! Any contributions you make are **greatly appreciated**.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AwesomeFeature`)\n3. Commit your changes (`git commit -m 'Add some AwesomeFeature'`)\n4. Push to the branch (`git push origin feature/AwesomeFeature`)\n5. Open a Pull Request\n\nContributing guide coming soon.\n\n## 📜 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nCreated by [Stefanie Jane 🌠](https://github.com/hyperb1iss)\n\nIf you find Siren useful, [buy me a Monster Ultra Violet](https://ko-fi.com/hyperb1iss)! ⚡️\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperb1iss%2Fsiren","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperb1iss%2Fsiren","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperb1iss%2Fsiren/lists"}