Skip to content

Easy8 CLI

easy8 is a standalone command-line client for Easy8.

Repository:

The CLI is useful for shell usage, CI automation, machine-readable output, and agent workflows that do not use MCP directly.

What it does

Current CLI scope includes:

  • listing, showing, searching, creating, and updating issues
  • listing, showing, and updating product backlog items (PBIs)
  • JSON output for scripts and agent integrations
  • installation of an agent skill for supported tools

Agent skill support

The CLI repository contains an embedded agent skill intended as the canonical integration point for task and PBI fetches.

This is important when you want an agent to understand short Easy8-oriented prompts and translate them into the correct CLI calls.

Typical use cases:

  • fetch an issue or PBI from a short prompt such as fix issue #1234
  • let an agent resolve task context before implementation work starts
  • keep agent workflows aligned with the supported easy8 command set

Install the skill

Install into OpenCode:

easy8 skill install --target opencode

Install into Claude Code:

easy8 skill install --target claude

Install into Codex locally:

easy8 skill install --target codex --local

Print the embedded skill content:

easy8 skill

If the installed skill does not appear immediately in the target tool, restart the session so the skill index reloads.

How it is used

Typical prompts used with the skill:

fix issue #1234
fix pbi #42
find pbi onboarding

Typical command mapping used by the skill:

easy8 issue show 1234 --quiet
easy8 pbi show 42 --quiet
easy8 pbi list --q "onboarding" --quiet

Skill vs MCP

Use the CLI skill when:

  • the agent works through local commands rather than an MCP client
  • you want a simple task fetch flow based on short prompts
  • you want the agent to reuse the supported easy8 command catalog

Use the MCP server when:

  • the client already supports MCP natively
  • you want dynamic tool discovery through tools/list
  • you want a long-lived tool integration over the /mcp endpoint

In short:

  • use the skill for command-driven agent workflows
  • use MCP for protocol-driven tool integrations

--quiet vs --json

Use --quiet when:

  • the agent needs raw API-shaped data
  • the output should be easy to pipe into another command or parser
  • you want the least extra wrapper metadata

Use --json when:

  • the agent benefits from an envelope with ok, data, and summary fields
  • you want a more explicit machine-readable success/error structure
  • the consumer expects CLI-level metadata in addition to entity data

In agent skill workflows, --quiet is usually the preferred default because it stays closest to the original Easy8 payload shape.

Installation

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/Easy8Com/easy8-cli/main/scripts/install.sh | bash
easy8 setup
easy8 issue list --limit 10

Windows (PowerShell)

irm https://raw.githubusercontent.com/Easy8Com/easy8-cli/main/scripts/install.ps1 | iex
easy8 setup
easy8 issue list --limit 10

Manual release download

  1. Download the correct binary from the GitHub releases page.
  2. Download checksums.txt from the same release.
  3. Verify the SHA-256 checksum.
  4. Move the binary to a directory on your PATH.

Build from source

go build -o easy8 ./cmd/easy8

Configuration

Recommended setup:

easy8 setup

Non-interactive examples:

easy8 setup --non-interactive --global --base-url "https://demo.easy8.com" --api-key "<your-key>"
easy8 setup --non-interactive --local --base-url "https://demo.easy8.com" --api-key "<your-key>"

Config files:

  • global config: ~/.config/easy8/config.yaml
  • local project override: .easy8.yaml

Configuration priority from highest to lowest:

  1. environment variables
  2. local config .easy8.yaml
  3. global config ~/.config/easy8/config.yaml
  4. built-in defaults

Environment variables:

export EASY8_BASE_URL="https://demo.easy8.com"
export EASY8_API_KEY="<your-key>"

Optional default IDs can also be configured for issue creation:

  • EASY8_DEFAULT_PROJECT_ID
  • EASY8_DEFAULT_TRACKER_ID
  • EASY8_DEFAULT_STATUS_ID
  • EASY8_DEFAULT_PRIORITY_ID
  • EASY8_DEFAULT_AUTHOR_ID
  • EASY8_DEFAULT_ASSIGNED_TO_ID

Common commands

Show issue detail

easy8 issue show 123
easy8 issue show 123 --include journals,attachments
easy8 issue show 123 --json
easy8 issue show 123 --quiet

List issues

easy8 issue list --limit 10 --sort "priority:desc,due_date"

Search issues

easy8 issue search --q "onboarding"
easy8 issue search --q "petr" --assignee-id 51 --status-id 2 --priority-id 3
easy8 issue search --q "petr" --assignee "Alice Doe" --status "New" --priority "High" --project "Project A"

Create issue

easy8 issue create \
  --subject "Fix onboarding" \
  --project-id 1 \
  --tracker-id 1 \
  --status-id 1 \
  --priority-id 1 \
  --author-id 1 \
  --assigned-to-id 2 \
  --description "Short summary"

Update issue

easy8 issue update 123 --status-id 5 --done-ratio 80

Work with PBIs

easy8 pbi list --limit 10
easy8 pbi show 42
easy8 pbi update 42 --status done

Auth helpers

easy8 auth status
easy8 auth login --api-key "<your-key>"
easy8 auth logout

Output modes

Entity commands support two machine-friendly output modes.

  • --json - envelope format with metadata
  • --quiet - raw API-shaped JSON data

Examples:

easy8 issue list --json
easy8 issue list --quiet
easy8 pbi show 42 --json
easy8 pbi show 42 --quiet

When to use the CLI vs MCP

Use the CLI when:

  • you want shell commands in local development or CI
  • you need a simple machine-readable tool without an MCP client
  • you want to install an embedded agent skill

Use the MCP server when:

  • your client already supports MCP
  • you want tool discovery over tools/list
  • you want the integration to happen through a persistent MCP endpoint

Source of truth

The authoritative reference for installation, commands, and supported flags is the upstream repository README and release artifacts: