# CLI and agent plugin

The ap CLI is your access to the platform from the terminal, and the agent plugin gives Cursor, Claude Code and Codex the same functions as MCP tools.

> Source: https://www.application-platform.com/en/docs/cli-and-agent-plugin/

## Install the ap CLI and sign in

A script installs the current release into `~/.local/bin` (Windows: `%LOCALAPPDATA%\ap-cli`) and adds the folder to your PATH; the [setup app]({{< relref "/downloads" >}}) ships the CLI as well, and remote workspaces have it preinstalled.

```bash
# macOS and Linux
curl -fsSL https://www.application-platform.com/install.sh | sh
# Windows (PowerShell)
irm https://www.application-platform.com/install.ps1 | iex
```

The script accepts `--dir`, `--version`, and `--no-modify-path` (after `sh -s --`); the manual binaries are on the downloads page. Then, in a new terminal:

```bash
ap login             # opens the browser to sign in
ap whoami            # shows user and organization
ap doctor            # checks that Git, Docker, runtimes and friends are present
ap cli-update check  # checks for a newer CLI release
```

`ap cli-update update-now` installs a newer release, `ap logout` removes the stored session, and the commands for working inside a repository are covered in [Local development]({{< relref "local-development" >}}).

## Install the agent plugin

The MIT-licensed plugin at [doppelt-digital/application-platform-plugin](https://github.com/doppelt-digital/application-platform-plugin) needs Node.js 18 or newer plus the ap CLI; one command detects the installed agent tools, writes skills and MCP configuration, starts `ap login` and verifies the session with `ap whoami`:

```bash
npx --yes github:doppelt-digital/application-platform-plugin
```

If you prefer to sign in separately, install only the plugin:

```bash
npx plugins add doppelt-digital/application-platform-plugin -s user -y
ap login
```

Claude Code and Codex have their own marketplaces, and tools without MCP support get the skills only:

```bash
# Claude Code
claude plugin marketplace add doppelt-digital/application-platform-plugin
claude plugin install application-platform@application-platform --scope user

# Codex, then install from /plugins
codex plugin marketplace add doppelt-digital/application-platform-plugin

# Skills only, without MCP (OpenCode, Windsurf, Continue)
npx skills add doppelt-digital/application-platform-plugin -g -y
```

In Cursor you open **Customize → Plugins** or use `npx plugins add` from above; the installer places the plugin under `~/.cursor/plugins/local/application-platform`, and after any variant you reload the editor. [Work with an AI agent]({{< relref "work-with-ai-agents" >}}) walks through the same installation step by step.

The plugin ships the skills `setup-and-login`, `create-project`, `import-existing-project` and `run-local`, the slash commands `/setup-and-login`, `/create-project` and `/import-existing-project`, a Cursor rule with the platform conventions, and the MCP configuration for the server `application-platform`, which starts `ap mcp serve` over stdio. For your own entry in `.cursor/mcp.json` or `.mcp.json`, this block is enough:

```json
{
  "mcpServers": {
    "application-platform": {
      "command": "ap",
      "args": ["mcp", "serve"]
    }
  }
}
```

## The MCP tools

Destructive tools require `confirm=true`, and status messages show no internal infrastructure terms.

| Area | Tools |
|---|---|
| Identity and status | `platform_whoami`, `platform_watch`, `platform_status` |
| Organizations | `platform_organizations_*` with list, get, create, update, invite and member management |
| Projects | `platform_projects_*` with list, get, create, update, delete, demo_json, clone, import_local, status, import_android_keystore and load_tests |
| Servers | `platform_servers_*` with list, get, create, update, delete and monitoring |
| Credentials | `platform_credentials_create` for web space, SMTP, App Store, Play Store, Hetzner and Hostinger, plus `platform_credentials_sentry_projects` |
| Workspaces, computers, compliance | `platform_workspaces_*`, `platform_computers_*`, `platform_compliance_*` |

The call order for import and project creation is described in [Import an existing repository]({{< relref "agent-project-import" >}}) and [Create a new project]({{< relref "create-project" >}}).

## When the agent gets stuck

If a tool reports `not logged in` or `session expired`, run `ap login` and check with `ap whoami`. If `ap` is missing from the PATH, install the CLI and reload the editor. If the server `application-platform` is missing in the client, the plugin is usually not installed or the window has not been reloaded.

Cloud agents without a local `ap` cannot use the stdio MCP; import and project creation need a locally running agent. If create, import or watch fails, that error message stands; the agent does not work around it with its own `git clone` or `git remote add`.

