# clairvoyant v0.1.0 - Table of Contents

> Visualize a project's dependency tree straight from its lockfile.

## Pages

- [Clairvoyant](readme.md)

## Modules

- [Clairvoyant](Clairvoyant.md): Documentation for `Clairvoyant`.

- [Clairvoyant.Application](Clairvoyant.Application.md): OTP entry point. Only matters for the Burrito-wrapped standalone binary —
`mix run`, `mix test`, and the `clairvoyant` escript all call
`Clairvoyant.CLI.main/1` directly and never boot this application.

- [Clairvoyant.CLI](Clairvoyant.CLI.md): Entry point for the clairvoyant escript.
- [Clairvoyant.Graph](Clairvoyant.Graph.md)
- [Clairvoyant.Parser](Clairvoyant.Parser.md): Behaviour every lockfile format parser implements.

- [Clairvoyant.Parsers.CargoLock](Clairvoyant.Parsers.CargoLock.md): Parses Rust/Cargo `Cargo.lock` files.
- [Clairvoyant.Parsers.ElixirTerm](Clairvoyant.Parsers.ElixirTerm.md): Decodes a string of Elixir source into a plain term, without executing any
code. Only literals (maps, tuples, lists, atoms, strings, numbers,
booleans, nil) are supported — anything else (function calls, variables,
module attributes, ...) is rejected. This is what makes it safe to use on
a `mix.lock` file, which is untrusted input.

- [Clairvoyant.Parsers.MixLock](Clairvoyant.Parsers.MixLock.md): Parses Elixir/Hex `mix.lock` files.
- [Clairvoyant.Parsers.PoetryLock](Clairvoyant.Parsers.PoetryLock.md): Parses Python/Poetry `poetry.lock` files.
- [Clairvoyant.Parsers.UvLock](Clairvoyant.Parsers.UvLock.md): Parses Python/uv `uv.lock` files.
- [Clairvoyant.Renderer.Tree](Clairvoyant.Renderer.Tree.md): Prints a Graph as an ASCII tree, starting from one or more roots.

