Reek
Reek is a free, open-source tool for examining Ruby classes, modules, and methods for code smells.
What Reek is
Reek is a free, open-source tool for examining Ruby classes, modules, and methods for code smells. It can inspect directories or source files and accept Ruby code through standard input. Detectors report issues such as Feature Envy, Large Class, Long Parameter List, Too Many Statements, Uncommunicative Name, and Unused Parameters. Results can be emitted as plain text, HTML, YAML, JSON, XML, or GitHub output. Configuration uses a `.reek.yml` file, while source comments can suppress selected warnings. The project describes directory-specific settings for Rails paths such as `app/controllers` and `app/models`. Listed editor integrations include Vim, TextMate, Atom, SublimeLinter, VS Code, and Emacs. Workflow projects include overcommit, ruby-critic, pronto-reek, and action-reek. Installation is through RubyGems with `gem install reek`. Official support covers CRuby 3.0 through 3.3 and JRuby 9.4. The repository uses the MIT license, and version 6.5.0 is listed in the changelog. Reek identifies higher-level smells but does not provide generic fixes, because appropriate changes depend on domain language and business logic.
Good
- Free and open source under the MIT license
- Supports six report formats
- Accepts files, directories, or standard input
- Offers Rails-specific directory configuration
- Lists editor and workflow integrations
Watch out
- No automatic fixes
- Official Ruby support covers listed versions only
- Unused Private Method checking is disabled by default
- Supports one programming language
Who it suits
It suits Ruby developers and teams that want configurable code-smell reports in editors, Rails projects, or CI workflows. Its formats and integrations support varied development setups.
Verdict
Reek provides broad Ruby smell detection with configurable output and many editor integrations. Readers should plan their own code changes because the tool does not generate generic fixes.
Plans and prices
From Reek's own pricing page, checked 11 Oct 2001.
| Plan | Price | What it gives you |
|---|---|---|
| Reek | Free | Ruby code smell detection · install via RubyGems |
The facts
Each one read from Reek's own pages, with the date it was checked.
What it does
- Code checks
- Its detectors include checks for issues such as Feature Envy, Large Class, Long Parameter List, Too Many Statements, and Uncommunicative Name.checked 11 Oct 2001
- Configuration
- Reek supports a `.reek.yml` configuration file and permits smell warnings to be suppressed with source code comments.checked 11 Oct 2001
- Detection
- Reek includes checks for code smells such as Feature Envy, Large Class, Long Parameter List, Too Many Statements, and Unused Parameters.checked 11 Oct 2001
- Detector defaults
- The README says the controversial Unused Private Method detector is disabled by default and must be explicitly enabled.checked 11 Oct 2001
- Editor integrations
- The README lists integrations for Vim, TextMate, Atom, SublimeLinter, VS Code, and Emacs.checked 11 Oct 2001
- Input
- Reek can inspect directories or source files and can also accept Ruby code through standard input.checked 11 Oct 2001
- Installation
- The README says to install Reek with RubyGems using `gem install reek`.checked 11 Oct 2001
- Integrations
- The README lists editor integrations for Vim, TextMate, Atom, SublimeLinter, VS Code, and Emacs.checked 11 Oct 2001
- License
- GitHub identifies the repository license as MIT.checked 11 Oct 2001
- Notable limit
- Reek says it cannot provide generic fixes for reported smells because fixes depend on domain language and business logic.checked 11 Oct 2001
- Notable limits
- The README says Reek identifies high-level code smells but cannot give generic fixes because fixes depend on domain language and business logic.checked 11 Oct 2001
- Other integrations
- The README lists support projects including overcommit, ruby-critic, pronto-reek, and action-reek.checked 11 Oct 2001
- Output
- Reek supports plain text, HTML, YAML, JSON, XML, and GitHub output formats.checked 11 Oct 2001
- Output formats
- Reek supports plain text, HTML, YAML, JSON, XML, and GitHub output formats.checked 11 Oct 2001
- Purpose
- Reek examines Ruby classes, modules, and methods and reports code smells.checked 11 Oct 2001
- Rails
- The README describes directory-specific configuration as a way to make Reek Rails-friendly.checked 11 Oct 2001
- Rails use
- The README describes configuring Reek for Rails with directory-specific settings for paths such as `app/controllers` and `app/models`.checked 11 Oct 2001
- Release
- The changelog lists version 6.5.0 dated 2025-03-24.checked 11 Oct 2001
- Ruby compatibility
- The README lists official support for CRuby 3.0 through 3.3 and JRuby 9.4.checked 11 Oct 2001
- Security and trust
- The repository page has a Security and quality section, but the opened project page did not state a specific security certification or compliance claim.checked 11 Oct 2001
- Supported Ruby versions
- The README lists official support for CRuby 3.0 through 3.3 and JRuby 9.4.checked 11 Oct 2001
- Workflow integrations
- The README names overcommit, ruby-critic, pronto-reek, and the action-reek GitHub Action as projects that use or support Reek.checked 11 Oct 2001
The company
- Founded
- 2009checked 28 Sep 2001
Alternatives to Reek
- 1
Flake8
Free planOpen sourceAPILinuxmacOSSelf-hosted7.3Free plan - 2
PMD
Free planLinuxmacOSSelf-hostedWindows6.8Free plan - 3
SwiftLint
Free planLinuxmacOSWindows6.6Free plan - 4

Ruff
Free planWebLinuxmacOSSelf-hosted6.5Free plan - 5

Biome
Free planWebExtensionLinuxmacOS6.4Free plan - 6

Cppcheck
Free planLinuxmacOSSelf-hostedWindows6.4Free plan
