Single-operator toolbelt for running AI coding agents across devcontainers, cloud VMs, credentials, and issue trackers — one .NET global tool.
pks <command> [options]$ dotnet tool install -g pks-cliInstall pks as a .NET global tool
$ pks claudeSpawn a devcontainer and attach a Claude Code session
$ pks vm initProvision a cloud VM and register it as an SSH target
$ pks agentics runner startRun the self-hosted Agentics job runner
$ pks claude limitsReport session and week usage limits as structured data
$ pks brain refreshRebuild the personal brain from Claude session history
pks is a .NET 10 command-line application, built on Spectre.Console.Cli and shipped as the pks-cli package. It is the connective tissue for running AI coding agents somewhere other than your laptop.
pks is a single binary that spans the whole loop an operator runs: scaffold a project, give an agent a runtime, put that runtime on a machine, hand it credentials, feed it work items, watch what it did, and collect what it produced. The command surface is broad on purpose — 57 top-level groups — because each step of that loop otherwise needs a different vendor CLI.
Two routes ship the same command surface. Route A needs the .NET 10 SDK; route B needs only Node 18 or newer and carries a self-contained binary per platform. The commands are identical on Linux, macOS, and Windows.
A — .NET global tool (canonical):
dotnet tool install -g pks-cli
dotnet tool update -g pks-cli # stable channel
dotnet tool update -g pks-cli --prerelease # daily channel
B — npm, no .NET required:
npm install -g @pks-cli/cli
The platform binary (@pks-cli/cli-linux-x64, @pks-cli/cli-osx-arm64, @pks-cli/cli-win-x64, and the rest) resolves through optionalDependencies, so the install line does not change per operating system.
Confirm the install:
pks --version
You should see the current version printed — 6.20.1 at the time of writing. After the first install, pks update handles upgrades and detects which of the two routes you used.
Every command reads from one config root: $HOME/.pks-cli on Linux and macOS, C:\Users\<user>\.pks-cli on Windows. Sign-in commands such as pks azure init, pks foundry init, and pks github init write credentials there, and everything else reads them back. A second, repo-local folder, .pks/, holds per-project state such as the project identity and generated agent definitions. The two are separate and both load-bearing.
The agent-runtime commands build on the machine commands rather than duplicating them. pks vm init provisions a box and registers it as a named SSH target. pks devcontainer spawn, pks claude, and pks vibecast then address that target by name, ship the project's .devcontainer to it, and attach an interactive session inside the resulting container. Sensitive steps — remote spawn, VM power operations, outbound SSH, self-update — pass through a two-factor action guard you configure with pks actions after enrolling a factor with pks authenticator init.
The 57 groups fall into seven families. Each group has its own page.
Scaffolding a project and managing pks itself.
| Group | What it does |
|---|---|
| pks init | Scaffold a new project from a NuGet devcontainer template and optionally spawn it. |
| pks exec | Launch any tool that speaks the PKS_DISCOVERY contract, injecting a chosen LLM provider. |
| pks update | Update the CLI on the stable or daily channel, per detected install method. |
| pks report | File a GitHub issue with version, environment, and local usage stats attached. |
| pks status | Render the system-status dashboard. |
| pks deploy | Render the deployment-flow demo. |
Getting a coding agent running, wiring it to a model, and connecting it to the Assembly Line Platform.
| Group | What it does |
|---|---|
| pks claude | Spawn Claude Code in a devcontainer or inline, point it at non-Anthropic backends, and analyse local usage. |
| pks agent | Run a one-shot, provider-neutral coding-agent loop, or register the session with Agent Share. |
| pks agentics | Log in to agentics.dk, run the self-hosted job runner, and submit assembly-line tasks. |
| pks codex | Run the upstream Codex CLI against an Azure AI Foundry deployment with no request translation. |
| pks opencode | Run OpenCode on a configured model provider — one command, no proxy, no config file. GLM 5.2 on Scaleway by default, Kimi K3 on Moonshot via --model kimi-k3. |
| pks mcp | Serve the CLI's own capabilities to a Model Context Protocol client over stdio or HTTP. |
| pks hooks | Register pks as the handler for Claude Code lifecycle hooks, including a lint gate on stop. |
| pks brain | Build a personal knowledge base from your Claude Code session history. |
| pks marketplace | Register and curate Claude Code plugin marketplaces. |
| pks share | Log this host into an Agent Share server over OIDC. |
| pks vibecast | Spawn a remote devcontainer and drop into a vibecast session inside it. |
| pks prd | Scaffold, validate, and template product requirements documents. |
Where the agents actually run.
| Group | What it does |
|---|---|
| pks devcontainer | Author, validate, spawn, connect to, and destroy devcontainers, locally or over SSH. |
| pks vm | Provision, start, stop, inspect, and destroy the Azure and Scaleway VMs that host containers. |
| pks schedule | Configure a VM's daily start, daily shutdown, and idle-shutdown watchdog. |
| pks firecracker | Bootstrap and run a Firecracker microVM job runner for isolated execution. |
| pks ssh | Manage named SSH targets and a pks-held encrypted key store behind the action guard. |
| pks rsync | Register rsync backup targets such as a NAS or a remote host. |
| pks tailscale | Store a Tailscale auth key and join preferences for VM enrollment. |
| pks scaleway | Authenticate against Scaleway with a static API key pair. |
The credential backbone the rest of the tool draws on.
| Group | What it does |
|---|---|
| pks azure | Sign in to Azure, pick a subscription, and review Cost Management spend and credit balance. |
| pks foundry | Authenticate to Azure AI Foundry, select deployments, mint tokens, and run the local token proxy. |
| pks google | Register and validate a Google AI Studio API key for image generation. |
| pks moonshot | Register and validate a Moonshot API key for running Kimi K3 through pks opencode. |
| pks ms-graph | Authenticate to Microsoft Graph through the device-code flow for mailbox access. |
| pks authenticator | Enrol and inspect the local time-based one-time password second factor. |
| pks actions | Choose which sensitive actions demand that second factor. |
| pks cert | Create, inspect, export, and remove pks-held code-signing certificates. |
| pks sign | Sign a Windows artifact unattended, on a workstation or inside a CI job container. |
Where work comes from and where it ships.
| Group | What it does |
|---|---|
| pks github | Authenticate to GitHub and run the devcontainer-backed self-hosted Actions runner. |
| pks ado | Authenticate to Azure DevOps and run the git credential proxy for containers. |
| pks jira | Browse Jira issue trees and export selected tickets to markdown and JSON. |
| pks confluence | Sync Confluence pages to local markdown in a git-tracked workspace and push edits back. |
| pks git | Answer Git's askpass prompts with a fresh Azure DevOps token. |
| pks registry | Store container-registry credentials for the job containers a runner spawns. |
| pks coolify | Register Coolify instances so the runner can match repos to applications and inject deploy variables. |
| pks tools | Generate the tool-registry pages that publish commands to agentics.dk. |
Moving bytes and reading back what happened.
| Group | What it does |
|---|---|
| pks storage | List, browse, and sync files against authenticated share providers, with a consent gate on writes. |
| pks fileshare | Authenticate a file-share provider and report its connection state. |
| pks appinsights | Choose the Application Insights resource that telemetry queries run against. |
| pks otel | Query exceptions, requests, logs, and dependency spans from that resource. |
| pks email | Export Microsoft Graph mail to a dated tree of markdown files with attachments. |
Producing artifacts once the work is done.
| Group | What it does |
|---|---|
| pks writing | Danish-first terminology lint, rubric scoring, and a portable writer profile. |
| pks persona | Score content against reader-archetype personas on rubric-driven metrics. |
| pks voice | Push-to-talk dictation backed by Azure AI Foundry Speech. |
| pks transcribe | Transcribe an audio or video file with a cloud or an on-device engine. |
| pks tts | Generate speech from text or SSML, optionally rendering an audio-reactive video. |
| pks image | Generate or edit an image through a Google AI or Azure AI Foundry model. |
| pks promptwall | Render a prompt from your Claude Code session history as a shareable card. |
| pks model | Download, update, and remove the on-device models the voice commands use. |
| Setting | Value |
|---|---|
| Config root (Linux, macOS) | $HOME/.pks-cli |
| Config root (Windows) | C:\Users\<user>\.pks-cli |
| Global settings and most tokens | ~/.pks-cli/settings.json |
| Per-project state | <repo>/.pks/ |
| Console log level | Warning |
| Update channel | prompted on the first pks update, then stored |
Note. Access and refresh tokens for GitHub, Azure, Azure DevOps, Foundry, Microsoft Graph, Scaleway, Tailscale, Google, and Jira are written to
settings.jsonas plaintext. Only the SSH-key, certificate, and Agent Share stores are encrypted at rest.
No environment variable moves the config root. Individual features read their own variables — AGENTICS_SERVER, ANTHROPIC_BASE_URL, OTEL_EXPORTER_OTLP_ENDPOINT, PKS_DEBUG, and others — each documented on the configuration page.
Choose which sensitive pks operations demand a TOTP code before they run, from an interactive checkbox list backed by a local policy file.
pks actions
Authenticate pks against Azure DevOps with OAuth2 and PKCE, then run a local git-proxy so devcontainers push and pull without holding a token.
pks ado <command> [options]
Run a one-shot LLM coding agent from the pks CLI, or enroll the current session as a shareable agent that people and other agents can send work to.
pks agent <prompt> [options]
3 subcommands
Log in to agentics.dk, turn a machine into a self-hosted Assembly Line runner, and file tasks onto an assembly line from a CI/CD pipeline.
pks agentics <command> [options]
4 subcommands
Point pks otel at an Azure Application Insights resource by signing in with Azure AD, picking a resource, and verifying the connection is live.
pks appinsights <command> [options]
Start a .NET Aspire AppHost with its declared parameters already resolved from what you are signed in to, instead of pasting endpoints and keys into prompts.
pks aspire <run|init> [options] [-- <apphost args>]
Enroll and check the local TOTP second factor that gates sensitive pks actions, with full command reference and troubleshooting.
pks authenticator <command>
Sign in to Azure with a browser-based OAuth2 PKCE flow, pick a subscription, and view Cost Management spend and sponsorship credit balance.
pks azure <command> [options]
Turn your own Claude Code session history into a searchable personal knowledge base — ingest, extract, synthesize, and render a wiki plus ADRs.
pks brain <command> [options]
14 subcommands
Command reference for pks cert — create, list, inspect, export, and remove the pks-held code-signing certificates that pks sign uses to sign Windows artifacts.
pks cert <command> [options]
Launch Claude Code in a devcontainer, inline, or against Foundry and Scaleway models, and analyse your local session transcripts for cost, pace, and quota.
pks claude <command> [options]
9 subcommands
Every command in the pks CLI in one index — 57 groups spanning agents, machines, cloud identity, delivery, storage, observability, and media.
pks <command> [options]
Run the real OpenAI Codex CLI against an Azure AI Foundry deployment through a local token-refreshing passthrough, with no request translation.
pks codex [subcommand] [options]
7 subcommands
How pks is organized: seven command families, the operator-console mental model, where state and credentials live, and the conventions every group repeats.
Where pks keeps config, state, and credentials on each OS, the complete environment-variable table, per-provider login flows, global options, and logging.
pks <command> [options]
Two-way sync between Confluence pages and local markdown, tracked in a private git workspace, with checkout, commit, and staged delete.
pks confluence <command> [options]
Out-of-band approval for scoped, irreversible actions — a caller files a request, a human approves it elsewhere, and the resulting grant is bound to an exact target list.
pks consent <command> [options]
Register Coolify instances so the self-hosted runner can auto-match a repo and branch to a deployable application and inject deploy credentials into CI jobs.
pks coolify <command> [url]
Reference for pks deploy, a cosmetic Spectre.Console demo of a deployment flow with no build, registry push, or cluster call behind it.
pks deploy [options]
Author, validate, spawn, and tear down VS Code devcontainers — locally or over SSH — from one command group in the pks CLI.
pks devcontainer <command> [options]
7 subcommands
Export an Outlook or Exchange mailbox via Microsoft Graph into a date-organized tree of Markdown files with frontmatter and saved attachments.
pks email export [options]
Create or adopt an Entra ID app registration, keep its client secret in the encrypted store, and bind it into a run without anybody pasting a guid.
pks entra app <init|list|forget> [options]
Run a companion tool through pks-cli's discovery contract, wiring in Azure AI Foundry, Gemini, or OpenAI-compatible provider credentials automatically.
pks exec [options] <EXECUTABLE> [ARGS...]
Authenticate a machine against Azure Files via OAuth PKCE and check connection status, the setup half of the pair with pks storage.
pks fileshare <command>
Bootstrap a Linux host, smoke-test a boot, and run a daemon that executes ALP assembly-line jobs inside isolated Firecracker microVMs.
pks firecracker <command> [options]
Sign in to Azure AI Foundry once, pick a resource and model deployments, then hand short-lived tokens to every pks command that needs them.
pks foundry <command> [options]
7 subcommands
The pks git askpass helper answers Git's GIT_ASKPASS credential prompts for Azure DevOps remotes using pks's stored ADO OAuth token.
pks git askpass [prompt] [options]
Authenticate pks with GitHub and run a self-hosted Actions runner that builds a fresh devcontainer for every queued workflow job.
pks github <command> [options]
4 subcommands
Register and inspect the Google AI Studio API key that `pks image` and `pks promptwall` use for Gemini-based image generation.
pks google <command> [options]
Wire pks into Claude Code's hook system: register handlers for seven lifecycle events and block a turn from ending when your lint command fails.
pks hooks <command> [options]
4 subcommands
Generate or edit an image from a text prompt via Google AI Studio (Gemini/Imagen) or Azure AI Foundry (gpt-image/dall-e), auto-resolved from the model name.
pks image [prompt] [options]
Scaffold a new agentic devcontainer project from a NuGet template, then optionally spawn the resulting devcontainer locally or on a remote SSH target.
pks init [PROJECT_NAME] [options]
Install the pks CLI as a .NET global tool or an npm-wrapped self-contained binary on Linux, macOS, or Windows, then verify, pin, update, and remove it.
dotnet tool install -g pks-cli
Authenticate pks against Jira Cloud or Server/Data Center, browse a project's issue tree interactively, and export selected issues to local markdown and JSON.
pks jira <command> [options]
Register Claude Code plugin marketplaces from a URL or GitHub repo, curate which plugins are enabled, and feed the result into a managed-settings.json.
pks marketplace <command> [options]
6 subcommands
Run pks-cli as a stdio or HTTP Model Context Protocol server so an AI client can call its deploy, agent, swarm, and reporting tools directly.
pks mcp [options]
Downloads, installs, and manages the local on-device AI models that pks voice and pks transcribe use for offline speech-to-text work.
pks model list | pks model <name> {init|status|update|remove}
Register a Moonshot API key so pks opencode can launch OpenCode on Kimi K3 — validated before it is stored, reused process-locally.
pks moonshot <command> [options]
Authenticate pks-cli against Microsoft Graph via OAuth2 device code flow and store the tokens that `pks email export` uses to read your mailbox.
pks ms-graph <command> [options]
Run OpenCode on a configured model provider — one command, no proxy, no config file. GLM 5.2 on Scaleway by default, Kimi K3 on Moonshot one --model away.
pks opencode [ARGS] [--model <id>] [--provider <id>]
Query exceptions, requests, structured logs, and dependency spans from Azure Application Insights in your terminal, without opening the Azure Portal.
pks otel <command> [options]
4 subcommands
Define reader personas, validate the persona library, and score markdown content against rubric-driven metrics with pks persona — the full command reference.
pks persona <command> [options]
Scaffold, inspect, and validate Product Requirements Documents from the command line — six subcommands that write and check docs/PRD.md.
pks prd <command> [options]
7 subcommands
Turn a prompt from a local Claude Code session transcript into a branded 1200x1200 social-media image via the Google AI Gemini image model.
pks promptwall [options]
Install the pks CLI, verify it runs, then get three real results locally — Claude Code cost analysis, a searchable session brain, and a writing lint pass.
dotnet tool install -g pks-cli && pks claude usage
Store container-registry credentials on a self-hosted runner host so CI job containers can authenticate to a private registry without secrets in workflow YAML.
pks registry <command> [hostname]
4 subcommands
Package a bug report, feature request, or question into a GitHub issue with CLI version, environment, and telemetry details pre-filled automatically.
pks report [MESSAGE] [options]
Register rsync backup targets — a NAS, a home server, or any remote host reachable over SSH — as prerequisite setup for pks claude backup.
pks rsync <command>
Store a Scaleway API key pair so pks vm can provision, start, and stop Scaleway GPU instances under a default project and zone.
pks scaleway <command> [options]
Interactive wizard that sets daily auto-start, daily auto-shutdown, and idle-shutdown timing on a tracked Azure VM in a single confirmed batch.
pks schedule
Log a machine into an Agent Share server via OIDC PKCE loopback login, the one-time prerequisite before pks agent register can mint an agent inbox.
pks share <command>
Sign a Windows artifact (MSIX, EXE, DLL, or MSI) with a pks-held code-signing certificate, unattended, from a developer machine or a CI job container.
pks sign <input> [options]
Register remote hosts as named SSH targets, hold their private keys encrypted, and route every outbound connection through the pks action guard.
pks ssh <command> [options]
6 subcommands
Render a mocked system-status dashboard with Spectre.Console — a demo of the CLI's grid and live-panel rendering, not a real infrastructure check.
pks status [options]
Browse and sync file-share storage from any authenticated pks provider, with uploads gated behind an interactive confirmation.
pks storage <command> [options]
Store a Tailscale auth key and join preferences that `pks vm tailscale` reads to join a provisioned VM to your tailnet over SSH.
pks tailscale init
Reference for pks tools publish, which reflects over ToolRegistryExport-tagged pks commands and regenerates their agentics.dk/tools Markdown docs.
pks tools publish
Transcribe an audio or video file to text with heypoul and Azure AI Foundry Speech, or with a local on-device model, in one non-interactive pass.
pks transcribe <file> [options]
Generate an MP3 from text or SSML via Azure AI Foundry / Azure Speech, with an optional audio-reactive MP4 rendered through ffmpeg.
pks tts [text] [options]
Check nuget.org for a newer pks-cli release, show a current-to-latest diff, and apply it using whichever mechanism matches how this pks binary was installed.
pks update [--self]
Spawn or reattach to a devcontainer on a remote SSH target and drop into an interactive vibecast broadcast session inside it, including Vibegame matches.
pks vibecast [PROJECT_PATH] [options]
Provision, connect to, monitor, schedule, and destroy Azure or Scaleway VMs used as remote devcontainer and GPU hosts, with SSH keys and 2FA handled.
pks vm <command> [options]
7 subcommands
Push-to-talk voice dictation for pks: hold a key to speak, release to inject the transcript, powered by the heypoul binary and Azure AI Foundry Speech.
pks voice <command> [options]
Danish-first writing linter, agent-driven rubric scoring, sentence-level naturalness rewrites, and a portable writer profile that moves between machines.
pks writing <command> [options]
6 subcommands