Installation
Requirements
- PHP ^8.3
- Laravel ^12.0
laravel/ai>=0.1 <0.11(see Known Risks)laravel/ai0.1.x itself requires PHP ^8.4; on PHP 8.3 Composer will resolve 0.2 or newer
Before you start
Run through this checklist once before your first session:
- [ ] Commit or stash any in-progress work — the agent will modify files, and a clean git state is your undo button.
- [ ] Set
ANTHROPIC_API_KEYin.env(or the key for your chosen provider). - [ ] Publish the
laravel/aiconfig:php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider" - [ ] Publish the Tackle config:
php artisan vendor:publish --tag="tackle-config"(publishes asconfig/tackle.php) - [ ] Run
php artisan ai:codeand type a small test task to confirm everything connects.
Install the package
composer require jordandalton/laravel-tackle
php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider"
php artisan vendor:publish --tag="tackle-config"The service provider and ai:code command register automatically via Laravel package auto-discovery.
API key setup
Tackle uses Anthropic (Claude) by default. Add your key to .env:
ANTHROPIC_API_KEY=sk-ant-...The config/ai.php published above already includes the anthropic provider block — just add the env var and you're ready.
Prefer another provider? Any provider in config/ai.php works, e.g. OpenAI:
AI_CODE_PROVIDER=openai
AI_CODE_MODEL=gpt-4o
OPENAI_API_KEY=sk-...Budget rates resolve automatically from Tackle's built-in model catalog (Anthropic, plus common OpenAI, Gemini, and Grok models — run /model in ai:code to see them with their rates). For models the catalog doesn't know, pin rates explicitly so budget enforcement stays meaningful — e.g. fully local via Ollama, no API key, no cost:
AI_CODE_PROVIDER=ollama
AI_CODE_MODEL=qwen3-coder
AI_CODE_PRICE_INPUT=0
AI_CODE_PRICE_OUTPUT=0You can also teach the catalog new models (or correct a stale built-in rate) in config/tackle.php under pricing.models. Non-Anthropic built-in rates are best-effort snapshots — verify against your provider's pricing page when the budget matters.
Have a ChatGPT subscription? The Tackle Codex add-on runs every agent on OpenAI's Codex models using your ChatGPT plan — no per-token billing:
php artisan tackle:install codex # then: AI_CODE_PROVIDER=codexPrefer Grok? The Tackle Grok add-on runs the agents on xAI's Grok models — an xAI API key (recommended) or your grok.com plan:
php artisan tackle:install grok # then: AI_CODE_PROVIDER=grokSwitch models per session with ai:code --model=... [--provider=...] (also on ai:run), or mid-session with /model.
Agent quality tracks the model
The coding and review agents lean heavily on tool calling, so weaker models produce weaker results. The plumbing is neutral; our recommendation is Claude.
Verify the setup
php artisan tackle:healthThis checks that the configs are published, an API key is configured for the active provider, and the project is a git repository with at least one commit. See Utility Commands for the full list of checks.
Next steps
- Run your first session
- Configuration — shell modes, allowlists, budgets, worktrees
- Environment variables — everything settable from
.env