Download the PHP package petar-spasic/laravel-kanban without Composer

On this page you can find all versions of the php package petar-spasic/laravel-kanban. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-kanban

laravel-kanban

A git-backed kanban board, a worktree-per-card workflow with its own Docker stack, and the Claude Code hooks and agents that let a main session run parallel agents safely. Dev-only, for Laravel projects.

Requirements

Install

Then restart Claude Code (agents and hooks load at session start), and run vendor/bin/kanban lease --takeover if the old session holds the orchestrator lease.

kanban:install (main checkout, once per project):

  1. creates the orphan branch kanban at docs/kanban with a stub board and commits it;
  2. configures this machine: the JSON merge driver, core.hooksPath → the package's githooks/, and kanban.rejectCoAuthored from githooks.reject_co_authored;
  3. merges .claude/settings.json (hooks below, permissions.allow += Bash(vendor/bin/kanban *), and commit and PR attribution off while Co-Authored-By trailers are rejected); foreign hooks are kept;
  4. writes .claude/agents/kanban-worker.md and kanban-evaluator.md (only files carrying its marker are overwritten), with model/effort from kanban.agents;
  5. with boost.json: adds petar-spasic/laravel-kanban to packages and runs boost:update (guideline into CLAUDE.md, skill into .claude/skills/kanban); without Boost: a <!-- laravel-kanban:start/end --> block in CLAUDE.md;
  6. adds /docs/kanban/ and /.claude/worktrees to .gitignore.

Everything on the main branch is left for you to review and commit. Every other machine or clone: composer install && vendor/bin/kanban attach.

Upgrade: composer update petar-spasic/laravel-kanban, vendor/bin/kanban doctor --fix (agents, hooks, git config), php artisan boost:update (with Boost), then restart Claude Code.

With the default auto, a project with an origin publishes its board to it on the first write (kanban:install and attach do so at once). Set KANBAN_SYNC=off in .env first to keep a board on this machine; a config/kanban.php published earlier keeps sync off until its line is changed (see Team sync). Keep the package version the same on every clone of a shared board.

The board

Workflow

The main session follows the kanban skill (run loop, decisions, recovery). Every command, flag, exit code and transition is in references/protocol.md; vendor/bin/kanban <cmd> runs without booting the app, and the same classes run as php artisan kanban:<cmd>. In a code worktree it runs the main checkout's copy: the worktree's vendor/ dates from its card's start.

Hooks

Merged into .claude/settings.json (exec form, so paths need no quoting):

Event Handler Does
SessionStart kanban hook session-start attach if missing, export KANBAN_SESSION, flush, retry the inbox, print the brief; then tidy up: prune stopped agents (14 days), applied reports (7 days), unclaimed spawns, staged files of finished cards, an expired lease and dependency-copy leftovers, and start sweep --reclaim in the background, which removes clean isolated-agent worktrees (up to ten per run) (agent-a…) idle for a day, freeing their slots
SubagentStart kanban hook subagent-start register kanban agents, add the board rules to their context
SubagentStop (kanban-worker\|kanban-evaluator) kanban hook subagent-stop refuse a stop without a report, run the gates, apply the report or verdict
PreToolUse (Bash\|Monitor\|Edit\|Write\|NotebookEdit\|EnterWorktree\|Agent) bin/kanban-guard plain PHP, < 50 ms, never denies: binds an agent to its card at EnterWorktree, refreshes its heartbeat, records the spawn of a kanban agent
WorktreeCreate / WorktreeRemove kanban hook worktree-create\|remove a kanban agent spawned from the main session gets its card's worktree; claude -w <ID> too; anything else a fresh worktree with deps, .env and a port slot. Card worktrees are never removed by the hook

Git hooks (core.hooksPath): commit-msg rejects Co-Authored-By trailers unless githooks.reject_co_authored is off; pre-push rejects pushes from a code worktree.

Agent isolation

Both agents carry isolation: worktree. The PreToolUse hook records each kanban spawn (.git/laravel-kanban/spawns/<ID>.json) and the WorktreeCreate hook hands the isolated subagent the worktree of the oldest record (≤ 2 min old), so it starts pinned there; two isolated spawns in one message could swap worktrees, which the agent's first EnterWorktree(path) corrects. When Claude Code refuses EnterWorktree, the hook has bound the agent anyway: it then uses absolute paths and cd <worktree> && ….

Worktree stacks

Each worktree runs the project's own docker-compose.local.yml (stack.compose_file) under its own project name, with ports from a machine-wide registry (~/.local/state/laravel-kanban/stacks.json, slots 1–99 × 10 ports from 21000):

The compose file must work for many stacks at once:

Docker address pools

Every stack is one Docker network. When the host's LAN overlaps Docker's default address pools, only a few networks stay free, about 6 stacks machine-wide. Widen the pools once (sudo), then bring the stacks back up (compose stacks without a restart policy stay down):

stack.max_stacks (default 6, KANBAN_MAX_STACKS) caps stacks per machine; before each up the registry also requires MemAvailable ≥ 8 GiB, ≥ 20 GiB free on / and a 1-minute load < 0.75 × CPUs (the load check is skipped where the CPU count is unknown, e.g. macOS).

Team sync

The board UI

/kanban (local environment, main checkout only) is a single page drawn by resources/dist/kanban.js from a JSON API under /kanban/_api. It needs nothing from the app it lives in: no session, cookie, CSRF token, web middleware group, layout, Vite or Tailwind, and it sends its own Content-Security-Policy, so it loads nothing from other origins.

The page needs a browser from 2024 or later (it uses light-dark()), and sets itself in Inter, shipped with the package under the SIL Open Font License (resources/dist/inter-LICENSE.txt).

A write carries the card's revision; if the card changed since, the UI shows the latest version instead of overwriting it. To script against the API, send X-Kanban: 1 with every write (see the gotchas).

Configuration

php artisan vendor:publish --tag=kanban-config → config/kanban.php: ui.* (the local /kanban UI, local env and main checkout only; ui.middleware is extra middleware for its routes, none by default; ui.hosts adds names it answers to besides IPs, localhost, *.test and the APP_URL host), agents.worker|evaluator.model|effort (written into the agent files), main_branch, remote, sync (off, auto, on), pull_seconds (how often an idle clone asks for a sync), user (the name shown beside the role in the log), worktrees.*, stack.* (compose file, project pattern, port pool, env block, caps), finish.after (commands run on main after a merge), gates.report (commands a worker's branch must pass, e.g. npm run check; context prints them for both agents), githooks.reject_co_authored (default true).

Gotchas

Surprises met in real runs are in references/gotchas.md as symptom → cause → fix.

License

MIT


All versions of laravel-kanban with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
laravel/framework Version ^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package petar-spasic/laravel-kanban contains the following files

Loading the files please wait ...