Metadata-Version: 2.4
Name: kctl-glpi
Version: 0.7.1
Summary: Kodemeio GLPI CLI - manage GLPI IT Service Management platform
Author-email: Kodemeio <dev@kodeme.io>
License-Expression: MIT
Keywords: asset-management,cli,glpi,helpdesk,itsm,kodemeio
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.12
Requires-Dist: httpx>=0.28.0
Requires-Dist: kctl-lib>=0.14.0
Provides-Extra: dev
Requires-Dist: mypy>=1.14.0; extra == 'dev'
Requires-Dist: pytest-httpx>=0.35.0; extra == 'dev'
Requires-Dist: pytest>=8.3.0; extra == 'dev'
Requires-Dist: ruff>=0.9.0; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# kctl-glpi

GLPI IT asset management CLI — manage tickets, assets, users, entities, plugins, and health for your GLPI IT Service Management platform.

## Installation

```bash
uv tool install kctl-glpi
```

Requires `kctl-lib>=0.4.0` (installed automatically).

For workspace development:

```bash
cd /path/to/kodemeio-cli
uv sync --all-extras --all-packages
```

## Configuration

Config lives in `~/.config/kodemeio/config.yaml` under the `glpi` service key, using the standard Kodemeio profile system.

```bash
# Interactive setup
kctl-glpi config init

# Add a named profile
kctl-glpi config add --profile production \
  --url https://glpi.kodeme.io \
  --app-token <glpi-app-token> \
  --user-token <glpi-user-token>

# Switch active profile
kctl-glpi config use production

# Show current config (secrets masked)
kctl-glpi config show
```

Example `~/.config/kodemeio/config.yaml` entry:

```yaml
profiles:
  kodemeio:
    glpi:
      url: https://glpi.kodeme.io
      app_token: ${GLPI_APP_TOKEN}
      user_token: ${GLPI_USER_TOKEN}
```

Use `-p/--profile` or `KCTL_GLPI_PROFILE` env var to select a profile.

## Command Groups

| Group | Description | Key Commands |
|-------|-------------|--------------|
| `config` | Profile and credential management | `init`, `add`, `use`, `show`, `validate`, `remove`, `set`, `profiles`, `current` |
| `tickets` | Helpdesk ticket lifecycle | `list`, `get`, `create`, `update`, `assign`, `close` |
| `assets` | Computer and hardware assets | `list`, `get`, `create`, `update`, `types` |
| `users` | GLPI user management | `list`, `get`, `create`, `search` |
| `entities` | Organizational entity hierarchy | `list`, `get`, `tree` |
| `search` | Flexible GLPI search API | `query`, `fields` |
| `plugins` | Plugin lifecycle management | `list`, `enable`, `disable` |
| `health` | Connectivity and API health | `check`, `dashboard` |
| `dashboard` | Platform overview | `overview` |
| `doctor` | Diagnostic checks with AI summary | `ai-summary` |
| `commands` | AI agent discovery | `list`, `tree` |
| `completions` | Shell completion install | `zsh`, `bash`, `fish` |
| `self-update` | Upgrade via uv tool | — |
| `tui` | Terminal user interface | — |

## Examples

### Ticket Management

```bash
# List all open tickets
kctl-glpi -p production tickets list

# Get a specific ticket
kctl-glpi -p production tickets get 1234

# Create a new ticket
kctl-glpi -p production tickets create \
  --title "Network outage in server room" \
  --description "Switches unreachable since 09:00" \
  --priority 4

# Assign ticket to a user
kctl-glpi -p production tickets assign 1234 --user-id 42

# Close a resolved ticket
kctl-glpi -p production tickets close 1234
```

### Asset Inventory

```bash
# List all computer assets
kctl-glpi -p production assets list

# Get details for a specific asset
kctl-glpi -p production assets get 56

# Create a new asset record
kctl-glpi -p production assets create \
  --name "srv-prod-01" \
  --serial "SN12345ABC"

# List available asset types
kctl-glpi -p production assets types
```

### User and Entity Management

```bash
# Search for a user
kctl-glpi -p production users search --query "john"

# List entity hierarchy
kctl-glpi -p production entities tree

# View entity details
kctl-glpi -p production entities get 1
```

### Health and Diagnostics

```bash
# Quick health check
kctl-glpi -p production health check

# Full dashboard status
kctl-glpi -p production health dashboard

# AI-ready diagnostic summary (for agent workflows)
kctl-glpi -p production --json doctor ai-summary
```

## Global Options

| Option | Short | Description |
|--------|-------|-------------|
| `--profile` | `-p` | Config profile name (or `KCTL_GLPI_PROFILE`) |
| `--format` | `-f` | Output format: `pretty`, `json`, `csv`, `yaml` |
| `--json` | | Shortcut for `--format json` |
| `--quiet` | `-q` | Suppress info messages |
| `--no-header` | | Omit headers in CSV output |
| `--url` | | GLPI API URL override |
| `--app-token` | | GLPI App-Token override |
| `--user-token` | | GLPI User-Token override |
| `--version` | `-V` | Show version and exit |

## Development

```bash
cd packages/kctl-glpi
uv sync --all-extras
uv run pytest tests/ -v
uv run mypy src/
uv run ruff check src/
uv build
```

## Standards

Follows the [Kodemeio CLI standard](../../CLAUDE.md) — profile inheritance, `--json` machine output, `doctor ai-summary`, `commands list --json` for agent discovery, and `skill generate` for SKILL.md auto-generation.
