gitwtfhub

wtf is vibe_kit?

elixir-vibe/vibe_kit — explained in plain English

Analysis updated 2026-05-18

16ElixirAudience · developerComplexity · 2/5Setup · easy

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

REASON 4

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

What's in the stack?

ElixirIgniterCredoDialyzer

How it stacks up

elixir-vibe/vibe_kitcaudena/beam_weavercarterperez-dev/exs-cyberjob-scraper
Stars162021
LanguageElixirElixirElixir
Setup difficultyeasymoderateeasy
Complexity2/54/52/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

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

Wtf does this do

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.

Yoink these 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.

Frequently asked questions

wtf is vibe_kit?

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.

What language is vibe_kit written in?

Mainly Elixir. The stack also includes Elixir, Igniter, Credo.

How hard is vibe_kit to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is vibe_kit for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.