PHPackages                             idoko-emmanuel/ticket-context-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. idoko-emmanuel/ticket-context-cli

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

idoko-emmanuel/ticket-context-cli
=================================

CLI tool that pulls Jira sprint tickets and generates rich Markdown context files for Claude Code and other AI coding assistants.

v0.1.0(3mo ago)00MITPHPPHP ^8.2

Since Mar 14Pushed 3mo agoCompare

[ Source](https://github.com/idoko-emmanuel/ticket-context-cli)[ Packagist](https://packagist.org/packages/idoko-emmanuel/ticket-context-cli)[ RSS](/packages/idoko-emmanuel-ticket-context-cli/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (1)Dependencies (11)Versions (4)Used By (0)

ticket-context-cli
==================

[](#ticket-context-cli)

[![PHP Version](https://camo.githubusercontent.com/344e820b219cee3234648531306104364bd684892ad13c5dc79e66eb82a15b90/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e322532422d626c7565)](https://www.php.net/)[![Laravel](https://camo.githubusercontent.com/53f994a897d083946738e0bc5943400cc950fa40f004eb4ba44bc2385b2f45ef/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d31322e782d726564)](https://laravel.com)[![Latest Version on Packagist](https://camo.githubusercontent.com/21fd0e6278b2a991892885a62e9962eac6470e659f271f3d5572589621e263bd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f69646f6b6f2d656d6d616e75656c2f7469636b65742d636f6e746578742d636c69)](https://packagist.org/packages/idoko-emmanuel/ticket-context-cli)[![Total Downloads](https://camo.githubusercontent.com/f1eae02821badfb43e0ea8a2ea1f65a151e8ae27d9a003c46886ff44735cd94d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f69646f6b6f2d656d6d616e75656c2f7469636b65742d636f6e746578742d636c69)](https://packagist.org/packages/idoko-emmanuel/ticket-context-cli)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![Install](https://camo.githubusercontent.com/51825c65e8328fb0bf772fbe1b0888df69d59f7f7f7dec3f1326532d097bf699/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f496e7374616c6c2d6375726c253230253743253230626173682d627269676874677265656e)](https://github.com/idoko-emmanuel/ticket-context-cli#installation)

A personal CLI tool that pulls your active Jira sprint tickets and generates rich Markdown context files optimised for pasting into Claude Code (or any AI coding assistant).

Run it from **any project repo** on your machine. It automatically scopes to the right Jira project and git branch.

---

Why this tool?
--------------

[](#why-this-tool)

Switching to a new ticket used to mean 5 browser tabs open, copy-pasting ticket details into Claude, manually creating a branch, and hoping I hadn't missed any acceptance criteria.

Now one command (`tix branch LTN-42`) creates the branch, fetches the full ticket, and saves a structured Markdown context file. Claude Code reads it automatically at session start via its skills system — so the AI already knows exactly what I'm building before I type a word.

---

How it works
------------

[](#how-it-works)

```
~/.config/ticket-context/config.json              ← your Jira credentials (one-time setup)
{project-root}/.ticket-context.json               ← links this repo to a Jira project key
{project-root}/.claude/skills/ticket-context/     ← SKILL.md + generated context .md files

```

[![Demo](demo.gif)](demo.gif)

---

Requirements
------------

[](#requirements)

- PHP 8.2+ — [php.net/downloads](https://php.net/downloads) or via your package manager
- Composer — [getcomposer.org/download](https://getcomposer.org/download) (the install script handles this automatically)
- Git

---

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

[](#installation)

### One-line install

[](#one-line-install)

The install script checks for PHP, installs Composer if it's missing, clones the repo, sets everything up, and adds the `tix` shell function automatically.

```
curl -fsSL https://raw.githubusercontent.com/idoko-emmanuel/ticket-context-cli/main/install.sh | bash
```

Then reload your shell:

```
source ~/.zshrc   # or ~/.bashrc
```

### Alternative: Composer global install

[](#alternative-composer-global-install)

If you already have Composer installed and prefer managing tools through it:

```
composer global require idoko-emmanuel/ticket-context-cli
```

> Ensure `~/.composer/vendor/bin` is in your `PATH` after installing.

### Manual install

[](#manual-install)

If you prefer to run each step yourself:

#### 1. Install Composer (skip if already installed)

[](#1-install-composer-skip-if-already-installed)

```
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php && rm composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
```

#### 2. Clone and install

[](#2-clone-and-install)

```
git clone https://github.com/idoko-emmanuel/ticket-context-cli.git ~/.local/share/ticket-context-cli
cd ~/.local/share/ticket-context-cli
composer install --no-dev
cp .env.example .env
php artisan key:generate
```

#### 3. Add the global shell function

[](#3-add-the-global-shell-function)

Add this to your `~/.zshrc` or `~/.bashrc`:

```
# ticket-context-cli — global tix command
unalias tix 2>/dev/null
tix() {
  local cmd="${1:-}"
  if [[ -z "$cmd" || "$cmd" == "--help" || "$cmd" == "-h" || "$cmd" == "help" ]]; then
    php ~/.local/share/ticket-context-cli/artisan tix:help
  else
    php ~/.local/share/ticket-context-cli/artisan "tix:${cmd}" "${@:2}"
  fi
}
```

Then reload:

```
source ~/.zshrc
```

You can now run `tix ` from any directory on your machine.

---

Uninstallation
--------------

[](#uninstallation)

```
curl -fsSL https://raw.githubusercontent.com/idoko-emmanuel/ticket-context-cli/main/uninstall.sh | bash
```

This will:

- Remove `~/.local/share/ticket-context-cli`
- Remove the `tix` shell function from `~/.zshrc` / `~/.bashrc`
- Prompt whether to also delete your saved Jira credentials (`~/.config/ticket-context/`)

---

Setup
-----

[](#setup)

### Configure your Jira credentials

[](#configure-your-jira-credentials)

```
tix configure
```

You will be prompted for:

PromptExampleWhere to find itAtlassian subdomain`your-org`Your Jira URL: `https://your-org.atlassian.net`Jira account email`you@company.com`The email you log into Jira withAPI token`ATATTx...`[id.atlassian.com/manage-profile/security/api-tokens](https://id.atlassian.com/manage-profile/security/api-tokens)Credentials are saved to `~/.config/ticket-context/config.json` with `chmod 600` — never inside any project repo.

### Verify the connection

[](#verify-the-connection)

```
tix health
```

Shows your credentials status, live connection test, and current project link.

---

Per-project setup
-----------------

[](#per-project-setup)

Run once from the root of each project repo you want to track:

```
cd ~/projects/my-app
tix link LTN
```

This creates `.ticket-context.json` in the repo root and adds `.claude/skills/ticket-context/*-context.md` to `.gitignore`.

Your project key is the prefix of every ticket — e.g. `LTN` from `LTN-42`. You can also find it in your Jira board URL:

```
https://your-org.atlassian.net/jira/software/c/projects/LTN/boards/34
                                                              ^^^

```

---

Daily workflow
--------------

[](#daily-workflow)

### 1. See your active sprint tickets

[](#1-see-your-active-sprint-tickets)

```
tix sprint
```

Shows a table of tickets assigned to you in the current sprint, filtered to the linked project. Use `--all` to see across all projects, `--json` for raw output.

### 2. Start a ticket — create a branch and save context

[](#2-start-a-ticket--create-a-branch-and-save-context)

```
tix branch LTN-42
```

This will:

- Create git branch `feature/ltn-42-{kebab-slug-of-summary}`
- Link the ticket to that branch in `.ticket-context.json`
- Fetch the full ticket from Jira and save it to `.claude/skills/ticket-context/LTN-42-context.md`
- Create `.claude/skills/ticket-context/SKILL.md` so Claude loads the context automatically

#### Also transition the ticket when branching

[](#also-transition-the-ticket-when-branching)

```
tix branch LTN-42 --transition="In Progress"
```

#### Link multiple tickets to one branch

[](#link-multiple-tickets-to-one-branch)

```
tix branch LTN-42 LTN-43 LTN-44
```

All tickets are linked to the branch. A combined context file is saved with each ticket as a separate section.

#### Skip branch creation (just save context)

[](#skip-branch-creation-just-save-context)

```
tix branch LTN-42 --no-branch
```

### 3. Generate or refresh context

[](#3-generate-or-refresh-context)

```
tix context
```

With no arguments, auto-detects tickets from the current git branch, saves the context to `.claude/skills/ticket-context/` and prints a confirmation. Explicit keys work the same way:

```
tix context LTN-42
tix context LTN-42 LTN-43
```

Optionally transition at the same time:

```
tix context --transition="In Review"
```

### 4. Move a ticket to a different status

[](#4-move-a-ticket-to-a-different-status)

```
tix move In Progress
```

Auto-detects tickets from the current branch and moves all of them. You can also pass explicit keys — no quotes needed for multi-word statuses:

```
tix move LTN-42 In Review
tix move LTN-42 LTN-43 Done
```

### 5. Check available statuses

[](#5-check-available-statuses)

```
tix statuses
```

Lists all statuses available in the linked project — useful when you're not sure of the exact name to pass to `--transition` or `tix move`.

---

Claude Code integration
-----------------------

[](#claude-code-integration)

A Claude skill file is automatically written to `.claude/skills/ticket-context/SKILL.md` the first time any `tix` command is run in a linked project. Claude Code reads skills from `.claude/skills/` at session start, so ticket context is loaded automatically — no manual configuration needed.

### Manual use

[](#manual-use)

You can also reference a context file explicitly at any time:

```
@.claude/skills/ticket-context/LTN-42-context.md implement the feature described in this ticket

```

---

Command reference
-----------------

[](#command-reference)

CommandDescription`tix help`Show all commands and their options`tix configure`Set Jira credentials interactively`tix health`Check config status and test connection`tix link `Link current directory to a Jira project`tix sprint`List active sprint tickets (scoped to linked project)`tix sprint --all`List active sprint tickets across all projects`tix sprint --json`Output raw JSON`tix branch  [KEY...]`Create branch, link ticket(s), save context file(s)`tix branch  --no-branch`Skip branch creation, only save context`tix branch  --transition=STATUS`Also transition ticket(s) to a status`tix context`Fetch and save context for current branch's linked tickets`tix context  [KEY...]`Fetch and save context for specific ticket(s)`tix context --transition=STATUS`Also transition ticket(s) to a status`tix move [KEY...] `Move ticket(s) to a status (auto-detects from branch)`tix statuses [PROJECT]`List available statuses for the project---

File reference
--------------

[](#file-reference)

FilePurposeCommitted?`~/.config/ticket-context/config.json`Global Jira credentialsNever`.ticket-context.json`Project key + branch→ticket mappingsNo`.claude/skills/ticket-context/SKILL.md`Claude skill definition (auto-generated)No`.claude/skills/ticket-context/*-context.md`Generated context Markdown filesNo (gitignored)---

Contributing
------------

[](#contributing)

1. Create a feature branch from `main`:

    ```
    git checkout main
    git pull
    git checkout -b feat/your-feature-name
    ```
2. Make your changes and commit them.
3. Push your branch and open a pull request against `main`:

    ```
    git push -u origin feat/your-feature-name
    ```
4. Ensure the CI checks (lint, unit tests, feature tests) pass before requesting a review.

---

License
-------

[](#license)

MIT

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance81

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

100d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a82361e891a17997444a80fa3fc17e96d99d77a78911da599f192b51b39f22e3?d=identicon)[idoko-emmanuel](/maintainers/idoko-emmanuel)

---

Top Contributors

[![idoko-emmanuel](https://avatars.githubusercontent.com/u/39383183?v=4)](https://github.com/idoko-emmanuel "idoko-emmanuel (41 commits)")

---

Tags

clilaravelaiContextjiraclaude

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/idoko-emmanuel-ticket-context-cli/health.svg)

```
[![Health](https://phpackages.com/badges/idoko-emmanuel-ticket-context-cli/health.svg)](https://phpackages.com/packages/idoko-emmanuel-ticket-context-cli)
```

###  Alternatives

[laravel/laravel

The skeleton application for the Laravel framework.

84.5k62.4M1.0k](/packages/laravel-laravel)[unopim/unopim

UnoPim Laravel PIM

10.3k2.2k](/packages/unopim-unopim)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[typicms/base

A modular multilingual CMS built with Laravel, enabling developers to manage structured content like pages, news, events, and more.

1.6k20.4k](/packages/typicms-base)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3861.7k](/packages/codewithdennis-larament)[ercogx/laravel-filament-starter-kit

This is a Filament v5 Starter Kit for Laravel 13, designed to accelerate the development of Filament-powered applications.

461.7k](/packages/ercogx-laravel-filament-starter-kit)

PHPackages © 2026

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