Metadata-Version: 2.4
Name: devlift-cli
Version: 0.1.5
Summary: DevLift command-line tool: create, change, review and deploy DevLift resources from the terminal.
License: Proprietary
Keywords: devlift,devops,deployment,infrastructure,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: System :: Systems Administration
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: typer>=0.15
Requires-Dist: rich>=13
Requires-Dist: httpx>=0.27
Requires-Dist: keyring>=25
Requires-Dist: pydantic>=2
Requires-Dist: pyyaml>=6

# devlift-cli

DevLift from the terminal, in the style of the AWS CLI:

```
devlift <group> <operation> [flags]
```

Every command is a fixed sequence of calls to the DevLift backend's REST API,
the same endpoints the web dashboard uses. Nothing here talks to an LLM.

## Install

```
pipx install devlift-cli
```

pipx gives the tool its own environment and puts `devlift` and `dl` on your
PATH. If you do not have it:

```
sudo apt install pipx      # Debian / Ubuntu
brew install pipx          # macOS
pipx ensurepath            # once, then reopen your terminal
```

Upgrade with `pipx upgrade devlift-cli`. Your profile and sign-in live in
`~/.config/devlift` and survive upgrades.

**Using pip instead?** Do it inside a virtual environment. A plain
`pip install devlift-cli` fails on recent Debian, Ubuntu and Fedora with
`externally-managed-environment`, because those systems refuse to let pip
touch the system Python.

```
python3 -m venv ~/.venvs/devlift && ~/.venvs/devlift/bin/pip install devlift-cli
```

Then:

```
devlift configure --base-url <your DevLift backend> --default
devlift login
devlift whoami
devlift man
```

Requires Python 3.11 or newer. To remove it: `pipx uninstall devlift-cli`.
That leaves `~/.config/devlift`, so delete that too if you want your profiles
and sign-in gone as well.

Several backends? `devlift profile list`, `devlift profile use <name>` and
`devlift profile show` switch between them and say which one is active.

## Manual

The full command reference ships inside the package: `devlift man` pages
through it like `man`, and `devlift manual s3` prints one section.

## What it covers

- Resources: `s3`, `sqs`, `dynamodb` create / list / describe, `s3` and `sqs` update.
- Services: `eks create / edit / show / diff / deploy / status`, `kong route add / remove / rename`, `kong plugin add`.
- Review lane: `request submit / withdraw / discard / list / show`, `approval approve / request-changes / reject / revoke / list`.
- Deployments: `deployment list / status`, `queue list`.
- Discovery: applications, environments, regions, resource groups, services, repositories, branches, languages.

Variables and secrets stay in the dashboard by design.

## Scripting

- `-o json` prints only JSON on stdout (the default when stdout is not a terminal).
- `--yes` answers confirmations, `--no-input` fails instead of prompting.
- `DEVLIFT_TOKEN` skips the stored login. `DEVLIFT_PROFILE`, `DEVLIFT_BASE_URL` override the profile.
- Exit codes: 0 ok · 1 error · 2 not signed in · 3 bad input · 4 permission · 5 confirmation needed · 6 not found · 7 conflict.

## Claude skill

A Claude skill ships inside the package, teaching Claude (Claude Code or any
Agent Skills host) to drive this CLI non-interactively. Install it with:

```
devlift skill install              # ~/.claude/skills/devlift, every project
devlift skill install --project    # ./.claude/skills/devlift, this repo only
```

Start a new Claude session afterwards to pick it up. `devlift skill status`
says where it is installed and whether it still matches the CLI;
`devlift skill install --force` refreshes it after an upgrade.

## Development

Building, testing and cutting a release: see `CONTRIBUTING.md` in the source
repository. It is deliberately not part of the published package.
