PHPackages                             valkyrja/sindri - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. valkyrja/sindri

ActiveProject[Utility &amp; Helpers](/categories/utility)

valkyrja/sindri
===============

The Valkyrja Sindri build tool.

v26.3.0(3w ago)01.1k—6.9%MITPHPPHP &gt;=8.4CI passing

Since Apr 17Pushed 1w agoCompare

[ Source](https://github.com/valkyrjaio/sindri-php)[ Packagist](https://packagist.org/packages/valkyrja/sindri)[ Docs](https://www.valkyrja.io/sindri)[ RSS](/packages/valkyrja-sindri/feed)WikiDiscussions 26.x Synced 1w ago

READMEChangelog (6)Dependencies (2)Versions (18)Used By (0)

[ ![](https://raw.githubusercontent.com/valkyrjaio/art/refs/heads/master/long-banner/orange/php.png)](https://valkyrja.io)

Sindri
======

[](#sindri)

[Sindri](https://github.com/valkyrjaio/sindri-php) is the build tool and application creator for the [Valkyrja](https://valkyrja.io) PHP framework.

Sindri scaffolds new Valkyrja applications, generates cache files for faster runtime performance, and handles build-time concerns across the Valkyrja ecosystem. Named after the dwarven smith in Norse mythology who forged Mjölnir and other divine artifacts, Sindri does for your Valkyrja app what his namesake did for the gods: crafts the tools and artifacts that make it all work faster and better.

 [![PHP Version Require](https://camo.githubusercontent.com/58408b1e16f137ffb6b526c5e431fc066ae9d8af7374f513864e3e09291555e2/68747470733a2f2f706f7365722e707567782e6f72672f76616c6b79726a612f73696e6472692f726571756972652f706870)](https://packagist.org/packages/valkyrja/sindri) [![Latest Stable Version](https://camo.githubusercontent.com/6f18c43b362503a07493c070212ab19f1584064cbb3a0a84f17c10ce79f8c9be/68747470733a2f2f706f7365722e707567782e6f72672f76616c6b79726a612f73696e6472692f76)](https://packagist.org/packages/valkyrja/sindri) [![License](https://camo.githubusercontent.com/bc15311feeae571e9d94ab791ce3c594fef9ff8d33e6fadfc2e7ebb89487217e/68747470733a2f2f706f7365722e707567782e6f72672f76616c6b79726a612f73696e6472692f6c6963656e7365)](https://packagist.org/packages/valkyrja/sindri) [![CI Status](https://github.com/valkyrjaio/sindri-php/actions/workflows/ci.yml/badge.svg?branch=26.x)](https://github.com/valkyrjaio/sindri-php/actions/workflows/ci.yml?query=branch%3A26.x) [![Scrutinizer](https://camo.githubusercontent.com/a583f284da569b7db005afae62109bad6d58587175964491c87fe392d0d3c81d/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f76616c6b79726a61696f2f73696e6472692d7068702f6261646765732f7175616c6974792d73636f72652e706e673f623d32362e78)](https://scrutinizer-ci.com/g/valkyrjaio/sindri-php/?branch=26.x) [![Coverage Status](https://camo.githubusercontent.com/ccf8516685d5d7258f37112280d0e480aab3440f1795280396e6f18e5549ec78/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f76616c6b79726a61696f2f73696e6472692d7068702f62616467652e7376673f6272616e63683d32362e78)](https://coveralls.io/github/valkyrjaio/sindri-php?branch=26.x) [![Psalm Shepherd](https://camo.githubusercontent.com/95ace806b92a15814d591f42d0fd9ec76dcf8998debe5396af90727d65d18130/68747470733a2f2f73686570686572642e6465762f6769746875622f76616c6b79726a61696f2f73696e6472692d7068702f636f7665726167652e737667)](https://shepherd.dev/github/valkyrjaio/sindri-php) [![Maintainability Rating](https://camo.githubusercontent.com/98bb1699db9c39d2f53ec884e493d3ffed1bc36dd599042a5de8b8d47d864577/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d76616c6b79726a61696f5f73696e647269266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/summary/new_code?id=valkyrjaio_sindri)

What Sindri Does
----------------

[](#what-sindri-does)

- **Scaffolds new Valkyrja applications** — bootstrap a fresh project with the correct structure, entry points, and configuration
- **Generates cache files** — produces compiled configuration, route, and container data that lets your app skip discovery work at runtime
- **Builds artifacts** — prepares deployable outputs optimized for production runtimes
- **Handles upgrades** — assists with migrations between major Valkyrja versions

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

[](#installation)

### Via Composer *(recommended)*

[](#via-composer-recommended)

Add Sindri to an existing Valkyrja project:

```
composer require --dev valkyrja/sindri

```

Or use Sindri to scaffold a new project from scratch:

```
composer create-project valkyrja/sindri your-project
cd your-project

```

### Phar

[](#phar)

*Phar distribution is planned for a future release.*

Getting Started
---------------

[](#getting-started)

### Scaffolding a New Application

[](#scaffolding-a-new-application)

Sindri can generate a new Valkyrja application with the correct structure and entry points:

```
vendor/bin/sindri new your-app-name

```

This creates a fresh project directory with pre-wired HTTP and CLI kernels, example controllers and commands, and a complete configuration scaffold — equivalent to using the [`valkyrja-starter-app-php`](https://github.com/valkyrjaio/valkyrja-starter-app-php) template but driven from the CLI.

### Building Cache Files

[](#building-cache-files)

Once your application is developed, Sindri can generate cache files that significantly improve runtime performance by eliminating discovery and configuration overhead:

```
vendor/bin/sindri cache

```

See the [Sindri documentation](./src/Valkyrja/README.md) for the full list of cache generation commands and options.

### Listing Available Commands

[](#listing-available-commands)

```
vendor/bin/sindri list

```

Documentation
-------------

[](#documentation)

Full Sindri [documentation](./src/Valkyrja/README.md) is baked into the repository so you can browse it offline.

For framework-level questions about Valkyrja itself, see the [Valkyrja framework repository](https://github.com/valkyrjaio/valkyrja-php).

Versioning and Release Process
------------------------------

[](#versioning-and-release-process)

Sindri follows [semantic versioning](https://semver.org/) with a major release every year, and support for each major version for 2 years from the date of release.

For more information see our [Versioning and Release Process documentation](./src/Valkyrja/VERSIONING_AND_RELEASE_PROCESS.md).

### Supported Versions

[](#supported-versions)

Bug fixes are provided until 3 months after the next major release. Security fixes are provided for 2 years after the initial release.

VersionPHPReleaseBug Fixes UntilSecurity Fixes Until268.4 – 8.6March 31, 2026Q2 2027Q1 2028278.5 – 8.6Q1 2027Q2 2028Q1 2029288.6+Q1 2028Q2 2029Q1 2030Contributing
------------

[](#contributing)

Sindri is an open-source, community-driven project. Thank you for your interest in helping develop, maintain, and release it.

See [`CONTRIBUTING.md`](https://github.com/valkyrjaio/.github/blob/master/CONTRIBUTING.md) for the submission process and [`VOCABULARY.md`](https://github.com/valkyrjaio/.github/blob/master/VOCABULARY.md) for the terminology used across Valkyrja.

Security Issues
---------------

[](#security-issues)

If you discover a security vulnerability within Sindri, please follow our [disclosure procedure](https://github.com/valkyrjaio/.github/blob/master/SECURITY.md).

License
-------

[](#license)

Sindri is open-source software licensed under the [MIT license](https://opensource.org/licenses/MIT). See [`LICENSE.md`](./LICENSE.md).

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance97

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 52.6% 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 ~6 days

Total

7

Last Release

8d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fbb43a59fb790365b014e53f82e3f26893867e4a47a249fc92962b6dc76878f2?d=identicon)[MelechMizrachi](/maintainers/MelechMizrachi)

---

Top Contributors

[![valkyrja-volundr[bot]](https://avatars.githubusercontent.com/in/2462900?v=4)](https://github.com/valkyrja-volundr[bot] "valkyrja-volundr[bot] (60 commits)")[![MelechMizrachi](https://avatars.githubusercontent.com/u/1179171?v=4)](https://github.com/MelechMizrachi "MelechMizrachi (54 commits)")

---

Tags

build-toolvalkyrjasindri

### Embed Badge

![Health badge](/badges/valkyrja-sindri/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[phing/phing

PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.

1.2k22.2M900](/packages/phing-phing)[roave/backward-compatibility-check

Tool to compare two revisions of a public API to check for BC breaks

5973.6M72](/packages/roave-backward-compatibility-check)[coenjacobs/mozart

Composes all dependencies as a package inside a WordPress plugin

4783.9M23](/packages/coenjacobs-mozart)[v.chetkov/php-clean-architecture

PHP Clean Architecture

14659.9k](/packages/vchetkov-php-clean-architecture)[phpdocumentor/reflection

Reflection library to do Static Analysis for PHP Projects

12524.8M137](/packages/phpdocumentor-reflection)

PHPackages © 2026

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