Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Tackle Laravel Package

jordandalton/laravel-tackle

Laravel Tackle is a practical Laravel package by Jordan Dalton that adds useful helpers and utilities for common development tasks, helping you reduce boilerplate and keep application code cleaner and easier to maintain.

View on GitHub
Deep Wiki
Context7

Getting Started

This package adds an interactive ai:code Artisan session to a Laravel app: a terminal REPL that streams model responses, renders tables, and keeps a running Git summary of what changed during the conversation.

Minimal path to first value:

  1. composer require the package (dev dependency is usually the right call if it's only used for local tooling).
  2. Publish the config (php artisan vendor:publish) and set your provider credentials in .env. The config file is the first place to look — it holds model/provider selection, streaming toggles, and the Git-summary behaviour referenced in this release.
  3. Run php artisan ai:code from the project root (not a subdirectory — Git context is resolved from the working directory).
  4. First use case: open a session, ask it to explain or refactor a single existing file, and watch the streamed response plus the Git summary at the end of the turn. That exercises streaming, rendering, and diff tracking in one go.

If you only want scripted/non-interactive use, go straight to the webhook/task entry point instead of the REPL — that path is explicitly supported and behaves differently with respect to Git output (see below).

Implementation Patterns

Interactive refactor loop. Keep the session open across several small asks rather than one giant prompt. Since v1.56.10 the Git summary only appears when the tracked diff actually changes during a turn, so a chat-only question ("why does this query N+1?") produces no summary noise — the summary becomes a reliable signal that the model actually touched files.

Stage before you start. Summaries include staged changes. If you stage the files you intend the session to work on (or stage nothing at all), the summary stays readable. Staging unrelated work-in-progress makes every turn look busy.

Terminal capture / logging. Responses are now written once per chunk instead of redrawing accumulated text, so php artisan ai:code | tee session.log and CI-style capture produce clean, non-duplicated transcripts. If you have any tooling that scrapes or diffs session output, this is the release to pin to.

Webhook and background tasks. Webhook-only and chat-only tasks stay quiet on the Git side. That makes them safe to run in jobs and schedulers where a diff dump would pollute logs — but it also means "no summary" is not evidence of "no changes."

Structured output. Table rendering is retained alongside streaming, so asking for comparisons/inventories still yields aligned output in a live terminal rather than a reflowed mess.

Wrapping it. For team workflows, wrap common invocations in your own Artisan command or Composer script so the model, prompt preamble, and working directory are fixed rather than retyped per session.

Gotchas and Tips

  • Upgrade if you parse output. Pre-1.56.10, accumulated text was redrawn, producing repeated paragraphs in captured terminals and long responses. Anything downstream that regexes or diffs session transcripts should be re-baselined after upgrading — the seven new terminal-output regression tests cover exactly this.
  • Absence of a summary is ambiguous. No Git block means "diff unchanged this turn," not "clean tree." Don't build a "did the AI change anything?" check on the summary alone; run git status --porcelain yourself.
  • The 10-path cap. Summaries truncate at ten paths and annotate that earlier edits are included. In a large refactor you will not see every touched file — treat the summary as a hint, and use git diff --stat for the real picture.
  • Git errors are non-fatal by design. A broken index, detached-HEAD weirdness, or a missing repo will silently degrade to no summary instead of aborting the conversation. Convenient interactively; dangerous if you assume the summary is authoritative in automation. Check repo health explicitly in CI.
  • Staged changes count. Users are often surprised that git add-ed files show up in a turn where the model touched nothing else. Unstage exploratory edits before a session if you want a tight signal.
  • Long sessions. Streaming now writes incrementally, but very long responses still mean large scrollback. Prefer several focused turns; the quiet-summary behaviour makes it cheap to ask follow-up questions that don't modify files.
  • Extension points. Provider/model selection and streaming behaviour live in the published config; prompt preambles and custom commands are the cheapest place to encode team conventions (coding style, test command, "don't touch migrations") rather than repeating them per session.
  • Verify before trusting. 792 passing tests (3 skipped) and a green docs build is a healthy signal, but this release is about output fidelity, not behaviour changes to the model layer — pin the version in composer.json if your logs or tooling depend on the new single-write output.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console