explaingit

elixir-vibe/vibe_kit

16ElixirAudience · developerComplexity · 2/5Setup · easy

TLDR

A one-command Elixir setup tool that installs Credo, Dialyzer, ExDNA, and other code quality checkers into any Elixir project and wires them all to a single mix ci command.

Mindmap

mindmap
  root((vibe_kit))
    What it installs
      Credo
      Dialyzer
      ExDNA
      ExSlop
      Reach
    Checks run
      Style
      Types
      Duplicated code
      Architecture
    How to use
      mix ci command
      One install step
    Optional flags
      Skip Reach
      AI instructions
    Cleanup
      Remove installer dep
      Keep config files
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run one install command to add a full code quality pipeline to a new Elixir project before any code is written.

USE CASE 2

Use mix ci to run formatting, style checks, type checking, and architecture rules in a single step on every pull request.

USE CASE 3

Enable ExSlop to catch patterns typical in AI-generated Elixir code before they get merged.

USE CASE 4

Uninstall VibeKit after setup and keep only the tools and configuration files it wrote.

Tech stack

ElixirIgniterCredoDialyzer

Getting it running

Difficulty · easy Time to first run · 5min

Requires an existing Elixir project with Mix, not a standalone app.

In plain English

VibeKit is a setup tool for Elixir projects that wires in a standard code quality pipeline with a single command. Elixir is a programming language commonly used for building web apps and long-running services. VibeKit works through a system called Igniter, which is an Elixir package for automating project configuration. Running one install command adds several quality-checking tools, their configuration files, and a shared alias called "mix ci" that runs all the checks in sequence. The checks that mix ci runs by default include: compiling the project with warnings treated as errors, verifying code formatting, running the test suite, running Credo (a style and static analysis tool), running Dialyzer (a type checker for Elixir), checking for duplicated code with ExDNA, and checking architectural rules with Reach. Each of these is a separate Elixir tool, VibeKit installs them all and connects them into one command so you do not have to configure them individually. The tools that VibeKit includes address different quality concerns. Credo checks for style problems and common mistakes. Dialyzer catches type errors that ordinary testing might miss. ExDNA finds copied or near-identical blocks of code, and by default requires zero such clones. ExSlop adds checks inside Credo specifically aimed at patterns that tend to appear in AI-generated code. Reach enforces architectural boundaries between parts of the codebase. The strict defaults can be turned off with flags if a project does not need all of them. For example, you can install without Reach, without the zero-clone limit, or without ExSlop. There are also optional flags that generate instruction files for AI coding assistants. Once installed, VibeKit does not need to stay as a permanent dependency. The project conventions it writes remain, but the installer itself can be removed. Teams that want to keep the install command available can add it explicitly as a development-only dependency.

Copy-paste prompts

Prompt 1
I just ran VibeKit on my Elixir project. Walk me through what each check in mix ci does and what kinds of issues each one catches.
Prompt 2
Dialyzer in my VibeKit setup is reporting a type mismatch in my GenServer. Here is the error. Explain what it means and how to fix it.
Prompt 3
I want to add a custom Credo check that flags functions longer than 20 lines. Write the Elixir module for the check.
Prompt 4
Help me configure Reach in a VibeKit project to enforce that the Accounts context never calls into the Billing context directly.
Open on GitHub → Explain another repo

← elixir-vibe on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.