Introducing Attune.js: Your New Code Quality Companion π
I'm excited to announce the release of Attune, a local-first CLI tool for comprehensive code quality checks.
No cloud accounts, no API keys, no data leaves your machine.
Why?
Because vibe code needs a lot of help to be "production-ready". Other tools can help, but many require cloud accounts, send your code to external servers, or have usage limits. Attune runs entirely locally, so your code never leaves your machine. It's fast, private, and works offline.
What is Attune?
Attune analyzes your codebase for security vulnerabilities, architectural issues, performance problems, and best practices. It's designed to be fast, private, and framework-aware.
Features
- 448 Built-in Rules covering security, performance, architecture, accessibility, and more
- Multi-Framework Support: React, Next.js, Vue, Svelte, Angular, Nuxt, Astro, Remix, Express, Fastify, tRPC
- Security Scanning: OWASP Top 10, hardcoded secrets, SQL injection, command injection
- Multiple Output Formats: Terminal, JSON, Markdown, HTML, and SARIF
- Framework Auto-Detection: Automatically identifies your stack (currently Node/TS-focused, planning Python support by 1.0.0)
-
Customizable:
.attuneignoreand.attunercsupport personalized configuration, cli args can change a multitude of settings per-run
Quick Start
# Install
npm install -D attune
# or
npm install -g attune
# Run a scan
attune analyze .
# Example Output
π Detecting project type...
βοΈ Running checks...
π Attune Scan Report
βββββββββββββββββββββββββββββββββββββ
Score: 85
Critical: 0 | High: 2 | Medium: 5 | Low: 8
βββββββββββββββββββββββββββββββββββββ
HTML Report
Attune also generates beautiful HTML reports with pie chart visualizationsβperfect for sharing with your team or adding to PRs. See the README for a couple of examples.
Give Feedback
Check out https://github.com/PeterPCW/attune for more details, or get it from npm (https://www.npmjs.com/package/attune) and use npm run attune analyze . --help to see all options.
Took me a few weekends from concept to get this to a 'beta' state I'm happy with. I'd love your feedback! Try it on your projects and let me know what you think.
Top comments (0)