Credo
What it is
Credo is a free static analysis tool for Elixir projects, focused on consistency and teaching. Running `mix credo` analyzes the current project and suggests places to edit code. Built-in checks address consistency, design, readability, refactoring, and warnings; strict analysis can include low-priority checks. For an issue, Credo can identify the check that raised it, show configuration options, and explain how to disable it. Results can be formatted for Flycheck, JSON, or SARIF, and reported issues cause a nonzero exit status for shell pipelines such as CI workflows. Configuration lives in `.credo.exs`, placed in the project root or its `config/` folder. Teams can add project- or domain-specific checks by implementing the `Credo.Check` behavior, and enable plugins through the `:plugins` field. The documentation recommends installing it as a Mix dependency for development and test, with runtime disabled. Credo aims to stay compatible with documented Elixir minor releases and actively tests compatibility on CI. Integrations are listed for several editors and Codacy.
For and against
For
- Built-in checks cover readability, design, and refactoring.
- Explains the check and configuration behind an issue.
- Supports Flycheck, JSON, and SARIF output.
- Custom checks and plugins are supported.
Against
- Focused on Elixir projects.
- Documentation recommends development and test use only.
The verdict
Credo pairs Elixir static analysis with explanations that can help developers understand and adjust checks. Its configuration, output formats, and CI behavior support both local review and pipeline use.
Who it suits
Credo suits Elixir developers who want consistency checks and explanations of reported issues. Its nonzero exit status also suits shell-based CI workflows.
Plans and prices
Credo
Open source Elixir static analysis tool
Read 9 Oct 2026 · github.com
On the record
- Analysis
- It suggests code changes and reports refactoring opportunities, complex code, common mistakes, naming inconsistencies, and style issues.github.com · read 9 Oct 2026
- Author
- The repository names René Föhring as the author.github.com · read 9 Oct 2026
- Checks
- Built-in checks cover consistency, design, readability, refactoring, and warnings, and low-priority checks can be included with strict analysis.credo.hexdocs.pm · read 9 Oct 2026
- CI usage
- Credo returns a nonzero exit status when it reports issues, supporting shell-based pipelines such as CI workflows.credo.hexdocs.pm · read 9 Oct 2026
- Compatibility
- Credo aims to stay compatible with the Elixir minor releases listed in the Elixir documentation, which it actively tests on CI.credo.hexdocs.pm · read 9 Oct 2026
- Configuration
- Credo uses a `.credo.exs` configuration file that can be placed in the project root or its `config/` folder.credo.hexdocs.pm · read 9 Oct 2026
- Custom checks
- Users can add project or domain specific checks by implementing the `Credo.Check` behavior and configuring the check.credo.hexdocs.pm · read 9 Oct 2026
- Installation
- The docs recommend adding Credo as a Mix dependency with `only: [:dev, :test]` and `runtime: false`.credo.hexdocs.pm · read 9 Oct 2026
- Integrations
- The maker lists integrations for IntelliJ, Atom, VS Code, Emacs, Kakoune, Neovim, and Codacy.github.com · read 9 Oct 2026
- Issue explanations
- Users can request an explanation for an issue that includes the check, its configuration options, and how to disable it.credo.hexdocs.pm · read 9 Oct 2026
- License
- Credo is released under the MIT License.github.com · read 9 Oct 2026
- Output
- Credo can output command results as JSON.credo.hexdocs.pm · read 9 Oct 2026
- Output formats
- The CLI supports Flycheck, JSON, and SARIF output formats.credo.hexdocs.pm · read 9 Oct 2026
- Plugins
- Plugins are modules enabled and configured through the `:plugins` field in `.credo.exs`.credo.hexdocs.pm · read 9 Oct 2026
- Publisher
- The Hex package lists `rrrene` as the package publisher and owner.hex.pm · read 9 Oct 2026
- Purpose
- Credo is a static code analysis tool for Elixir focused on code consistency and teaching.credo.hexdocs.pm · read 9 Oct 2026
- Teaching
- For an issue, Credo can show the check that raised it, its configuration options, and how to disable it.credo.hexdocs.pm · read 9 Oct 2026