PHPackages                             tessera/installer - 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. tessera/installer

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

tessera/installer
=================

Tessera AI Project Installer — AI builds your project

v3.13.0(1mo ago)028PolyForm-Noncommercial-1.0.0PHPPHP ^8.4CI passing

Since Mar 13Pushed 1mo agoCompare

[ Source](https://github.com/drnasin/tessera-installer)[ Packagist](https://packagist.org/packages/tessera/installer)[ RSS](/packages/tessera-installer/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (1)Dependencies (10)Versions (41)Used By (0)

Tessera Installer
=================

[](#tessera-installer)

[![Tests](https://github.com/drnasin/tessera-installer/actions/workflows/tests.yml/badge.svg)](https://github.com/drnasin/tessera-installer/actions/workflows/tests.yml)[![PHP](https://camo.githubusercontent.com/270717987f5341772d79b57567226e54ed27b2d4199bbdc98a96e2edf24902fa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342532422d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://www.php.net/)[![License](https://camo.githubusercontent.com/e1c1daceeb505ebe180db5854437fd7e686fd380cf5391a70e14cd6cca0fa5ed/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d536f757263652d2d617661696c61626c652d626c7565)](LICENSE.md)

Website: **[tessera-ai.net](https://tessera-ai.net)** · Docs: [tessera-ai.net/docs](https://tessera-ai.net/docs/what-is-tessera)

> Describe your project. AI builds it.
>
> One command, one conversation, one production-ready codebase. Tessera turns the AI CLI tools you already have (Claude, Codex, Gemini) into an inspectable, resumable build orchestrator.

> **Important:** Tessera uses **your own** AI CLI tools and **your own** subscription. Each call burns tokens from your plan. Generated code may contain bugs, security issues, or wrong implementations. Always review before shipping. See [Disclaimer](#disclaimer).

Install in 30 seconds
---------------------

[](#install-in-30-seconds)

```
composer global require tessera/installer
```

Make sure the Composer global bin directory is in your `PATH`:

OSPathWindows`%APPDATA%\Composer\vendor\bin`macOS / Linux`~/.composer/vendor/bin````
tessera --version
tessera doctor    # check that your system is ready
```

Build your first project
------------------------

[](#build-your-first-project)

```
tessera new my-restaurant
```

Tessera asks five questions (business, languages, payments, design, scale), picks the right stack, and runs the AI build. Coffee break — the typical Laravel build is 10–15 minutes.

[Full walkthrough →](https://tessera-ai.net/docs/creating-project)

See what AI is about to do
--------------------------

[](#see-what-ai-is-about-to-do)

Before you spend a single token, compile and inspect the build plan:

```
tessera plan compile stacks/laravel.yaml
tessera plan show          # pretty-print every step
tessera plan diff a.json b.json    # what changed?
```

Every plan is hash-anchored. Tweak a prompt, recompile, diff — you see exactly what shifted. [`tessera plan` reference →](https://tessera-ai.net/docs/cli/plan)

Available stacks
----------------

[](#available-stacks)

StackBest forWhere the recipe lives**Laravel + Filament**CMS, e-commerce, admin panels[`stacks/laravel.yaml`](stacks/laravel.yaml)**Node.js / Next.js**API servers, SaaS, real-time apps[`stacks/node.yaml`](stacks/node.yaml)**Go**High-performance backends, microservices[`stacks/go.yaml`](stacks/go.yaml)**Flutter**Mobile (iOS + Android + web)[`stacks/flutter.yaml`](stacks/flutter.yaml)**Static**Landing pages, portfolios, event sites[`stacks/static.yaml`](stacks/static.yaml)Every stack is described in YAML. The same engine drives them all. [Authoring a custom stack →](https://tessera-ai.net/docs/architecture/yaml-manifests)

What you get out of the box
---------------------------

[](#what-you-get-out-of-the-box)

- **Inspectable plans.** `tessera plan compile/show/diff` — no tokens spent until you say go.
- **Quality gates.** Each step declares post-checks (`exists_any`, `exists_all`) so the AI saying "done!" against an empty directory fails loudly.
- **Skippable enrichment.** Polish steps and SETUP.md generators that hit a transient rate limit don't abort a 25-minute build.
- **Build trace.** Every run leaves `.tessera/state.json` + `.tessera/events.jsonl` + `.tessera/plan.json`. Post-mortem any build with `jq` and a few seconds.
- **Resume.** Crash, Ctrl+C, network drop — run the same command, pick up where it left off. Atomic state writes survive interrupts.
- **Cross-OS process control.** Windows `taskkill /F /T`, Unix `pgrep -P` + `posix_kill`. Tessera never leaves zombie AI subprocesses pinned to your terminal.
- **Plan-aware AI routing.** Claude Max gets all the steps; free-tier accounts hit fallback chains. Rate limits cause a 2-minute cooldown and a tool switch, not a build crash.
- **AI tool isolation.** Every AI subprocess — whether spawned through the adapter path or the legacy router — runs under an allowlist that passes only that provider's own credentials. `ANTHROPIC_API_KEY` never reaches Codex; `OPENAI_API_KEY` never reaches Claude; and unrelated secrets (`GITHUB_TOKEN`, `COMPOSER_AUTH`, the ssh-agent socket, CI tokens) never reach any AI CLI. Detection probes run with no credentials at all.
- **Pluggable adapters.** [Adding Groq, Ollama, or your own AI →](https://tessera-ai.net/docs/architecture/adapter-system)

Quick reference — CLI commands
------------------------------

[](#quick-reference--cli-commands)

```
tessera doctor                                       # is my system ready?
tessera new                                     # the main command
tessera new  --force                            # overwrite existing dir
tessera new  --stack=                     # skip AI stack selection (names: tessera stacks)
tessera new  --requirements-fixture=      # skip interactive Q&A (loads JSON)
tessera plan compile  [-o ]          # compile manifest → plan.json
tessera plan show []                      # pretty-print a plan
tessera plan diff                    # semantic diff (exit 0/1/2)
tessera stacks                                       # list available stacks + system readiness
tessera tools                                        # which AI tools are installed?
tessera --version
tessera --help
```

[Full CLI reference on the docs site →](https://tessera-ai.net/docs/cli/plan)

Environment variables
---------------------

[](#environment-variables)

Optional. The installer asks for your AI plans interactively on first run and saves the answers to `~/.tessera/config.json`, so later runs skip the questions. The environment variables below always take precedence over the saved config.

```
TESSERA_CLAUDE_PLAN=max       # max | pro | free
TESSERA_CODEX_PLAN=plus       # plus | free
TESSERA_GEMINI_PLAN=free      # pro | free
TESSERA_TOOL_PREFERENCE=gemini,claude,codex   # custom tool order
TESSERA_TOOL_EXCLUDE=codex                    # never use this tool
TESSERA_SAFE_AI=1             # opt out of --dangerously-skip-permissions for Claude (see below)
TESSERA_AI_TIMEOUT=900        # seconds per AI step (default 900)
TESSERA_ISOLATE_AI_CONFIG=0   # opt out of interview behavioral-config isolation
```

By default the requirements interview runs the AI CLI isolated from your personal instruction files (`claude --safe-mode`, `codex --ignore-user-config`) so the interview is always in English and machine-independent. Auth is preserved. Set `TESSERA_ISOLATE_AI_CONFIG=0` only if a CLI flag ever breaks authentication on your setup.

[Full security &amp; permission model →](https://tessera-ai.net/docs/disclaimer)

AI permission mode
------------------

[](#ai-permission-mode)

`TESSERA_SAFE_AI=1` affects **only Claude**. Here is the exact per-tool breakdown:

ToolDefault behaviourWith `TESSERA_SAFE_AI=1`**claude**Launched with `--dangerously-skip-permissions` — no per-action approval prompts.`--dangerously-skip-permissions` is removed. Claude pauses for approval on each action; the installer will fail loudly rather than silently hang.**codex**Runs inside Codex's own sandboxed approval model. Tessera passes `--skip-git-repo-check` but no auto-approve flag. Whether Codex prompts depends on your installed version's defaults.**No change.** `TESSERA_SAFE_AI` is ignored for Codex. A warning is printed to remind you of this.**gemini**Gemini CLI's default approval flow is whatever ships on your machine. Tessera passes no permission flag. For API-key authenticated sessions this is typically non-interactive by default.**No change.** `TESSERA_SAFE_AI` is ignored for Gemini. A warning is printed to remind you of this.**Summary:** if you set `TESSERA_SAFE_AI=1` on a system where Codex or Gemini is the only available tool (or is preferred via `TESSERA_TOOL_PREFERENCE`), Claude's behaviour is unaffected (it is not running), and Tessera will emit a one-time warning that the flag has no effect on the resolved tool. The build will proceed using that tool's own defaults.

If you need guaranteed non-interactive, unattended behaviour with Codex or Gemini, configure those tools' own approval settings outside of Tessera (e.g. Codex's `~/.codex/config.toml`, or ensure your Gemini API key is set so the CLI does not prompt for auth).

After the build
---------------

[](#after-the-build)

```
cd my-restaurant
cat SETUP.md              # what to configure (env vars, API keys, deploy)
php artisan serve          # for Laravel — npm run dev for static/node, etc.
```

Each stack's `SETUP.md` is junior-developer-friendly: env keys with the URL where to get them, payment provider step-by-step, deployment checklist. AI writes it as part of the build.

For continuing changes:

- **Laravel** — `php artisan tessera "add a gallery to the homepage"` (in-project AI Engine with project context).
- **Other stacks** — use your AI CLI directly: `claude "add JWT auth"` / `codex "create REST endpoints"` / `gemini "add a dark mode toggle"`. The AI reads your codebase and knows the structure.

Testing
-------

[](#testing)

```
vendor/bin/phpunit
```

477 tests, 1090 assertions — all passing with zero AI tokens. CI runs on Ubuntu, Windows, and macOS with PHP 8.4–8.5.

Contributing &amp; adding a stack
---------------------------------

[](#contributing--adding-a-stack)

[Contributing guide →](https://tessera-ai.net/docs/contributing) · [How to author a stack →](https://tessera-ai.net/docs/architecture/yaml-manifests)

The minimal recipe: drop `stacks/.yaml`, add a `*Stack.php` lifecycle class with `preflight()` / `postSetup()` / `completionInfo()`, register in `StackRegistry`. The YAML drives the AI portion; the PHP class only handles tool-specific lifecycle.

Disclaimer
----------

[](#disclaimer)

**AI Token Usage.** Tessera calls AI CLI tools installed on your system. Each call consumes tokens from your own subscription plan or API quota. Tessera does not provide, manage, or pay for AI access. A typical project build uses 5–10 AI calls.

**Generated Code.** AI-generated code may contain bugs, security vulnerabilities, incorrect business logic, or incompatible dependencies. Tessera includes safeguards (quality gates, PHP lint, test loops, namespace verification), but you are responsible for reviewing, testing, and validating all generated code before production.

**Third-Party Services.** Tessera may scaffold integrations with third-party services (payment providers, cloud APIs, email services). These integrations need manual configuration and validation. Tessera is not affiliated with and makes no guarantees about any third-party service.

**No Warranty.** This software is provided "as is", without warranty of any kind. The authors are not liable for damages arising from the use of this software or any code it generates. Use at your own risk.

[Full disclaimer →](https://tessera-ai.net/docs/disclaimer)

License
-------

[](#license)

Tessera is **source-available**, not open source.

Use caseCostLicencePersonal projects, learning, OSS, non-profit, government**Free**[PolyForm Noncommercial 1.0.0](LICENSE.md)Client work for pay (agency / freelance)from **€249/yr**Commercial — SoloAgency / small product team (up to 10 devs)**€799/yr**Commercial — StudioLarger teams, custom SLA, private registry**Custom**Commercial — Enterprise**Generated code is yours** in either lane — the licence covers the installer itself, not the projects it scaffolds.

- [Pricing &amp; buy a commercial licence →](https://tessera-ai.net/docs/pricing)
- [Full Commercial License Agreement →](https://tessera-ai.net/docs/commercial-license)
- [Licence overview &amp; FAQ →](https://tessera-ai.net/docs/license)

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance90

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~3 days

Recently: every ~12 days

Total

34

Last Release

50d ago

Major Versions

v1.3.0 → v2.0.02026-03-13

v2.9.0 → v3.0.02026-03-14

PHP version history (2 changes)v1.0.0PHP ^8.2

v3.11.1PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/27d71933a44feff8905b90da6867281d8bf6b88e4fe2b94f85c4483687f4ad59?d=identicon)[drnasin](/maintainers/drnasin)

---

Top Contributors

[![drnasin](https://avatars.githubusercontent.com/u/3784166?v=4)](https://github.com/drnasin "drnasin (148 commits)")

---

Tags

laravelaiinstallercmstessera

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/tessera-installer/health.svg)

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.9k3.8M1.1k](/packages/statamic-cms)[laravel/sail

Docker files for running a basic Laravel application.

1.9k212.4M1.4k](/packages/laravel-sail)[craftcms/cms

Craft CMS

3.6k3.7M3.3k](/packages/craftcms-cms)[getkirby/cms

The Kirby core

1.5k606.6k519](/packages/getkirby-cms)[october/rain

October Rain Library

1611.7M99](/packages/october-rain)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

12017.1k](/packages/rcsofttech-audit-trail-bundle)

PHPackages © 2026

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