PHPackages                             crowbot/cli - 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. crowbot/cli

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

crowbot/cli
===========

Standalone Crow CLI for reading events, listening for handoffs, and fetching implementation plans.

02

Since Jun 28Compare

[ Source](https://github.com/danrichards/crow-cli)[ Packagist](https://packagist.org/packages/crowbot/cli)[ RSS](/packages/crowbot-cli/feed)WikiDiscussions Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

Crow CLI
========

[](#crow-cli)

Crow CLI is a standalone command-line companion for Crow developer handoffs. It reads queued Crow events, listens for live forwarded events, and fetches implementation-plan handoffs in formats that are ready to paste into an AI coding agent or use directly in a terminal workflow.

The app is built with [Laravel Zero](https://laravel-zero.com/) and ships as a PHAR-backed `crow` executable.

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

[](#installation)

Once the package is published, install it globally with Composer:

```
composer global require crowbot/cli
```

Make sure Composer's global bin directory is on your `PATH`, then verify the install:

```
crow list
```

For local development from this repository:

```
composer install
php crow list
```

The checked-in PHAR build is available at:

```
./builds/crow list
```

Authentication
--------------

[](#authentication)

Run the login command:

```
crow auth login
```

The CLI prints the API-token page URL, attempts to open it in your browser, then prompts for the token. If your terminal supports clickable links, you can also open the printed URL directly.

Credentials are stored at:

```
/.crow/config.json

```

When you run `crow auth login` from inside a project, the CLI writes credentials to that project's `.crow/config.json`. This lets different projects use different Crow accounts and API tokens. If no project root can be detected, credentials fall back to the global config at `~/.crow/config.json`.

Use `--global` when you intentionally want shared credentials:

```
crow auth login --global
```

Config files are written with restrictive permissions where the platform supports it. Environment variables remain supported for automation and CI.

Configuration precedence is:

1. Explicit command options, such as `--api-token` or `--api-url`
2. Environment variables
3. The nearest project config discovered by walking upward from the current directory: `.crow/config.json`
4. Global config: `~/.crow/config.json`
5. Built-in defaults

Supported environment variables:

```
CROW_API_URL=https://crow.test/api/v1
CROW_API_TOKEN=your_token_here
CROW_APP_ID=
CROW_LISTEN_PUBLIC_URL=
CROW_LISTEN_HOST=127.0.0.1
CROW_LISTEN_PORT=8787
CROW_LISTEN_SECRET=
```

The current default API URL is `https://crow.test/api/v1`.

For automation or headless environments, pass the token and skip browser launch:

```
crow auth login --api-token=your_token_here --no-browser
```

To point one command at a specific config file, set `CROW_CONFIG_PATH`:

```
CROW_CONFIG_PATH=/path/to/.crow/config.json crow plan
```

Commands
--------

[](#commands)

### Fetch Implementation Plans

[](#fetch-implementation-plans)

List active implementation plans:

```
crow plan
```

Fetch a specific plan handoff:

```
crow plan
```

Print raw JSON:

```
crow plan  --json
```

Write output to a file:

```
crow plan  --output=handoff.md
```

### Read Crow Events

[](#read-crow-events)

Read the latest unread event:

```
crow read
```

Read a specific event:

```
crow read
```

Leave the event unread after printing:

```
crow read  --leave-unread
```

Filter unread lookup by app or event types:

```
crow read --app-id=123 --events=dispatch.received --events=recon.ready
```

### Listen For Live Events

[](#listen-for-live-events)

Start a local listener:

```
crow listen --public-url=https://your-public-url.example
```

The listener binds to `127.0.0.1:8787` by default and receives events at:

```
POST /crow/events
GET /health

```

Override the bind address:

```
crow listen --host=127.0.0.1 --port=8787
```

Start the listener without registering it with Crow:

```
crow listen --no-register
```

When registering with Crow, expose the local listener first and set `CROW_LISTEN_PUBLIC_URL` or pass `--public-url`.

Compatibility Aliases
---------------------

[](#compatibility-aliases)

The old Artisan-style command names are still available as aliases:

```
crow crow:plan
crow crow:read
crow crow:listen
```

The preferred CLI interface is:

```
crow plan
crow read
crow listen
```

Development
-----------

[](#development)

Install dependencies:

```
composer install
```

Run the test suite:

```
composer test
```

Inspect available commands:

```
php crow list
```

Build the PHAR:

```
php crow app:build crow --build-version=unreleased
```

Smoke-test the built artifact:

```
./builds/crow plan --help
```

Release Notes
-------------

[](#release-notes)

This repository is now the standalone Crow CLI. It is no longer a Laravel installable package that auto-registers Artisan commands inside a host application.

For Packagist distribution, `composer.json` points its `bin` entry at `builds/crow`, so release builds should include a fresh PHAR artifact.

###  Health Score

10

—

LowBetter than 0% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/219?v=4)[Dan Benjamin](/maintainers/dan)[@dan](https://github.com/dan)

### Embed Badge

![Health badge](/badges/crowbot-cli/health.svg)

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

###  Alternatives

[illuminate/console

The Illuminate Console package.

13046.0M6.6k](/packages/illuminate-console)[styleci/cli

The CLI tool for StyleCI

71470.5k9](/packages/styleci-cli)[winbox/args

Windows command-line formatter

20720.9k21](/packages/winbox-args)[tomatophp/filament-artisan

Simple but yet powerful library for running some artisan commands for FilamentPHP

3275.4k1](/packages/tomatophp-filament-artisan)

PHPackages © 2026

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