# Credo [![CI Tests](]( [![Inline docs](](

Credo is a static code analysis tool for the Elixir language with a focus on teaching and code consistency.

It can show you refactoring opportunities in your code, complex code fragments, warn you about common mistakes, show inconsistencies in your naming scheme and - if needed - help you enforce a desired coding style.


## Installation and Usage

The easiest way to add Credo to your project is by [using Mix](

Add `:credo` as a dependency to your project's `mix.exs`:

defp deps do
    {:credo, "~> 1.7", only: [:dev, :test], runtime: false}

And run:

    $ mix deps.get

    $ mix credo

## Documentation

Documentation is [available on Hexdocs](

## Integrations

### IDE/Editor

Some IDEs and editors are able to run Credo in the background and mark issues inline.

* [IntelliJ Elixir]( - Elixir plugin for JetBrains IDEs (IntelliJ IDEA, Rubymine, PHPStorm, PyCharm, etc)
* [linter-elixir-credo]( - Package for Atom editor (by @smeevil)
* [Elixir Linter (Credo)]( - VSCode extension (by @pantajoe)
* [flycheck]( - Emacs syntax checking extension
* [kakoune]( - Config for linting support in Kakoune editor
* [Neovim via null-ls]( - diagnostics builtin

### Automated Code Review

* [Codacy]( - checks your code from style to security, duplication, complexity, and also integrates with coverage.
* [SourceLevel]( - tracks how your code changes over time and have this information accessible to your whole team.
* [Stickler CI]( - checks your code for style and best practices across your entire stack.

## Contributing

1. [Fork it!](
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

## Author

René Föhring (@rrrene)

## License

Credo is released under the MIT License. See the LICENSE file for further