PHPackages                             millancore/ladoc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. millancore/ladoc

ActiveLibrary[CLI &amp; Console](/categories/cli)

millancore/ladoc
================

Console tool for explore Laravel Documentation

v0.13.1(1mo ago)14183MITPHPPHP ^8.2CI passing

Since Jul 7Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/millancore/ladoc)[ Packagist](https://packagist.org/packages/millancore/ladoc)[ RSS](/packages/millancore-ladoc/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (16)Versions (13)Used By (0)

Laravel Documentation for `Console`
===================================

[](#laravel-documentation-for-console)

 [![Ladoc example](https://raw.githubusercontent.com/millancore/lo/main/art/example.png)](https://raw.githubusercontent.com/millancore/lo/main/art/example.png)

 [![GitHub Workflow Status (master)](https://camo.githubusercontent.com/b69a9c47aa2082435fcce1992b066ec0e4ad7783caf1f0989acdae6ebe3b9978/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d696c6c616e636f72652f6c61646f632f746573742e796d6c)](https://github.com/millancore/ladoc/actions) [![Total Downloads](https://camo.githubusercontent.com/03679f80d7e828995c26ec555512582e41fb3dce6b2b56457adcabb29bf84214/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696c6c616e636f72652f6c61646f63)](https://packagist.org/packages/millancore/ladoc) [![Latest Version](https://camo.githubusercontent.com/e4520a0e4227313fb0770db0c287cf3ccd86fbfa735d8c1ef4fb53e4cea67dc8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d696c6c616e636f72652f6c61646f63)](https://packagist.org/packages/millancore/ladoc) [![License](https://camo.githubusercontent.com/9e974a9a9a995287dd63f2f1649b8820e9cc936265c747921936b9fc38882592/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d696c6c616e636f72652f6c61646f63)](https://packagist.org/packages/millancore/ladoc)

---

**Ladoc** allows you to search and browse Laravel documentation in all its versions.

Tip

Unlike Laravel Boost, Ladoc supports versions prior to 10.x — all the way back to 4.x — making it perfect for maintaining older Laravel projects.

Ladoc itself needs PHP 8.2 to run, but that's independent of your project: you can browse Laravel 4.x docs while maintaining an app stuck on an old PHP version. If your machine only has an older PHP, use the [Docker image](#or-using-docker) instead.

Index
-----

[](#index)

- [Use with AI tools](#use-with-ai-tools)
    - [MCP Server](#mcp-server)
    - [Agent Skill (CLI)](#agent-skill-cli)
- [Installation](#installation)
- [Usage](#usage)
    - [Search](#search)
    - [List all sections](#list-all-sections)
    - [Filter Main List](#filter-main-list)
    - [Navigation System](#navigation-system)
    - [Using the search with index](#using-the-search-with-index)
    - [Versions](#versions)
- [Working with legacy Laravel versions](#working-with-legacy-laravel-versions)

Use with AI tools
-----------------

[](#use-with-ai-tools)

Ladoc can be used by AI coding agents (Claude Code, Cursor, etc.) to look up accurate, version-specific Laravel documentation. There are two ways to connect it.

> Both require ladoc to be installed first — see [Installation](#installation).

### MCP Server

[](#mcp-server)

Ladoc ships with an [MCP](https://modelcontextprotocol.io) server (`ladoc-mcp`, stdio transport) that exposes three tools:

ToolDescription`list_sections`List all sections of the documentation`get_section`Get the topic index of a section`search_docs`Search a section and return the matching articlesAll tools accept an optional `version` (e.g. `"12.x"`, defaults to the latest).

**Claude Code**

```
# current project, only for you (default)
claude mcp add laravel-docs -- ladoc-mcp

# all your projects
claude mcp add --scope user laravel-docs -- ladoc-mcp

# project scope: shared with your team via a .mcp.json committed to the repo
claude mcp add --scope project laravel-docs -- ladoc-mcp
```

**Cursor, Windsurf, and other MCP clients**

For project scope, add a `.mcp.json` to the project root (Claude Code reads this file, and it is what `--scope project` generates):

```
{
    "mcpServers": {
        "laravel-docs": {
            "command": "ladoc-mcp"
        }
    }
}
```

The same block works in each client's own configuration file, e.g. `.cursor/mcp.json`(project scope) or `~/.cursor/mcp.json` (global) for Cursor.

> `ladoc-mcp` is installed by `composer global require millancore/ladoc`. If your composer global bin directory is not in `PATH`, use the full path, e.g. `~/.config/composer/vendor/bin/ladoc-mcp`.

**Using Docker**

The Docker image includes `ladoc-mcp`, so you don't need PHP on the host. Keep a named container running (the downloaded doc indexes are reused between sessions):

```
docker run -td --name ladoc millancore/ladoc
```

Then point your MCP client at it:

```
claude mcp add laravel-docs -- docker exec -i ladoc ladoc-mcp
```

```
{
    "mcpServers": {
        "laravel-docs": {
            "command": "docker",
            "args": ["exec", "-i", "ladoc", "ladoc-mcp"]
        }
    }
}
```

> Use `-i`, never `-t`: MCP communicates over stdin/stdout and a TTY corrupts the stream. A throwaway container also works (`docker run --rm -i millancore/ladoc ladoc-mcp` as the command), but it re-downloads the docs on the first search of each session.

### Agent Skill (CLI)

[](#agent-skill-cli)

Any agent that can run shell commands can use the `ladoc` CLI directly — output is plain text (no ANSI codes) when piped. A ready-made skill for Claude Code is included in [`skills/laravel-docs`](skills/laravel-docs/SKILL.md); install it with:

```
mkdir -p ~/.claude/skills
cp -r "$(composer global config home)/vendor/millancore/ladoc/skills/laravel-docs" ~/.claude/skills/
```

Installation
------------

[](#installation)

### Using Composer

[](#using-composer)

**Requires [PHP 8.2](https://php.net/releases/)**

```
composer global require "millancore/ladoc"
```

---

### or Using Docker

[](#or-using-docker)

```
 docker run -td --name ladoc millancore/ladoc
```

Uses:

```
docker exec -it ladoc sh # (and then zz or ladoc)
```

Usage
-----

[](#usage)

> **Tip:** To make it easier to use, create an alias, I usually use `zz`.

### Search

[](#search)

`ladoc  `

```
ladoc blade @once
```

### List all sections

[](#list-all-sections)

simply execute the command without parameters, you will see a list of all the sections (in brackets).

```
ladoc
```

Result:

```
 Main List

• [0] Artisan Console (artisan)
• [1] Authentication (authentication)
• [2] Authorization (authorization)
• [3] Laravel Cashier (Stripe) (billing)
• [4] Blade Templates (blade)
...

```

### Filter Main List

[](#filter-main-list)

To simplify the navigation you can filter main list with '--letter' or `-l` and initial letter.

```
ladoc -lv
```

Result:

```
 Main List | filter: V

• [0] Validation (validation)
• [1] Views (views)

```

### Navigation System

[](#navigation-system)

You can navigate through all sections using the indexes in the list.

```
ladoc 4
```

Result:

```
 Blade Templates

• [0] Introduction (+)
• [1] Displaying Data (+)
• [2] Blade Directives (+)
...

```

and continue in that way

```
ladoc 4 2
```

Result:

```
Blade Directives

In addition to template inheritance and displaying data...

────────────────────────
• [0] If Statements
• [1] Switch Statements
• [2] Loops
• [3] The Loop Variable
...

```

### Using the search with index

[](#using-the-search-with-index)

You can search directly in a section using its index. `ladoc 4 @once` it's equal to `ladoc blade @once`.

### Versions

[](#versions)

Ladoc allows you to search all versions of Laravel, just use `--branch` or `-b` to define the version you want to use.

```
ladoc -b5.2 blade
```

> If no version is set, use the latest one.

Working with legacy Laravel versions
------------------------------------

[](#working-with-legacy-laravel-versions)

Ladoc covers every Laravel version back to 4.0, so you can maintain old projects with the documentation that actually matches them.

**1. Find the project's Laravel version**

Check `laravel/framework` in the project's `composer.json`:

```
"require": {
    "laravel/framework": "4.2.*"
}
```

**2. Pass it to ladoc with `-b`**

Versions 6 and later use the `Nx` branch format; versions 4 and 5 use the exact minor:

Laravel`-b` valueExample6.0 and later`6.x` … `13.x``ladoc -b8.x eloquent scopes`5.0 – 5.8`5.0` … `5.8``ladoc -b5.2 blade`4.0 – 4.2`4.0`, `4.1`, `4.2``ladoc -b4.2 templates`The first search on a version downloads and indexes its docs; after that it's instant. Each version keeps its own index, so you can switch between projects freely.

Note

Old versions organize the docs differently — for example, Laravel 4.x has `templates`instead of `blade`. Run `ladoc -b4.2` (no query) to list the sections that exist in that version, and if you search a section that doesn't exist, ladoc suggests the closest match.

**3. With AI tools**

Agents using the [MCP server](#mcp-server) pass the version as the `version` argument of each tool; with the [skill](#agent-skill-cli), they read the constraint from `composer.json` and add `-b` automatically. Either way, the agent gets answers for the version your project actually runs.

Ladoc itself requires PHP 8.2, no matter which Laravel version you're consulting — if the legacy machine can't provide it, use the [Docker image](#or-using-docker).

---

Ladoc is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance94

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~123 days

Recently: every ~276 days

Total

10

Last Release

31d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1243194?v=4)[Juan Esteban Millan](/maintainers/millancore)[@millancore](https://github.com/millancore)

---

Top Contributors

[![millancore](https://avatars.githubusercontent.com/u/1243194?v=4)](https://github.com/millancore "millancore (47 commits)")[![mnaderian](https://avatars.githubusercontent.com/u/30769988?v=4)](https://github.com/mnaderian "mnaderian (1 commits)")

---

Tags

phpcliconsolelaraveldocumentationtool

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/millancore-ladoc/health.svg)

```
[![Health](https://phpackages.com/badges/millancore-ladoc/health.svg)](https://phpackages.com/packages/millancore-ladoc)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.9k556.2M21.4k](/packages/laravel-framework)[nunomaduro/collision

Cli error handling for console/command-line PHP applications.

4.7k367.2M12.3k](/packages/nunomaduro-collision)[illuminate/console

The Illuminate Console package.

13046.6M7.3k](/packages/illuminate-console)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k39.6k](/packages/matomo-matomo)[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k99.8M354](/packages/laravel-horizon)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
