OPS on-demand: This skill should be used when the user asks to "ship a parcel", "print a label", or…

MITAuto-check: notes

Install Ops Package

skills CLI
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-package -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-package --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude-ops/skills/ops-package .claude/skills/ops-package && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ops-package
GitHub stars
542
Token cost
~2k tokens
SKILL.md length
665 words
Files
10
Skills in repo
67
Repo updated
First seen
Licence
MIT

At a glance

OPS on-demand: This skill should be used when the user asks to "ship a parcel", "print a label", or…

  • Works in 3 steps: Environment variable(s) listed below. → preferences.json key (lowercase of the… → Doppler: doppler secrets get --plain.
  • Asks to ship a parcel
  • SKILL.md covers Which carrier do I get?, Credential resolution, Routing and ship, plus 6 more sections
  • Runs Shell scripts from its folder; needs MYPARCEL_API_KEY and SENDCLOUD_PUBLIC_KEY

What it does

Ops Package is an agent skill from Lifecycle-Innovations-Limited/claude-ops. OPS on-demand: This skill should be used when the user asks to "ship a parcel", "print a label", or…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files (for example `lib/carriers/dhl.sh`, `lib/carriers/dpd.sh` and `lib/carriers/fedex.sh`).

The repository describes itself as: Business operating system for Claude Code — 57 skills, 21 agents, smart daemon. Unified inbox (WhatsApp/Email/Slack/Telegram), autonomous PR merge, full-AWS monitoring, revenue… The licence is MIT.

When your agent uses it

  • Asks to ship a parcel

Example prompts

  • “ship a parcel”
  • “print a label”
  • “/ops-package”

Requirements

  • A Bash shell
  • A credential in MYPARCEL_API_KEY
  • A credential in SENDCLOUD_PUBLIC_KEY
  • Pre-approved tools (allowed-tools): Bash, Read, AskUserQuestion

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Environment variable(s) listed below.
  2. preferences.json key (lowercase of the env var name) at ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferenc…
  3. Doppler: doppler secrets get --plain.

What it can do on your machine

Read from SKILL.md and the folder at commit 1aa0928. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • api.sendcloud.dev
    • api-gw.dhlparcel.nl
    • developer.postnl.nl
    • esolutions.dpd.com
    • developer.ups.com
    • developer.fedex.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • MYPARCEL_API_KEY
    • SENDCLOUD_PUBLIC_KEY
    • SENDCLOUD_PRIVATE_KEY
    • DHL_PARCEL_KEY
    • POSTNL_API_KEY
    • DPD_PASSWORD
    • UPS_CLIENT_SECRET
    • FEDEX_CLIENT_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ops Package loads about 2k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 665 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~28
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Lifecycle-Innovations-Limited/claude-ops at commit 1aa0928, republished under its MIT licence (© Lifecycle-Innovations-Limited). 665 words, ~2,046 tokens.

Download SKILL.mdSave it as .claude/skills/ops-package/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
ops-package
description
OPS on-demand: This skill should be used when the user asks to "ship a parcel", "print a label", or…
allowed-tools
Bash, Read, AskUserQuestion
argument-hint
[--carrier <name>] <ship|label|track|list|carriers> [args...]
effort
low
maxTurns
15
disallowedTools
Edit, Write, NotebookEdit

OPS ► PACKAGE — multi-carrier shipping

Load ops-rules before acting. Public repo (no personal data). Outbound: one draft → one approval → one send. If AskUserQuestion / Workflow are missing, follow Rule 10 in ops-rules (Hermes: numbered options / two-turn Telegram card; delegate_task).

One skill, seven carriers. The router picks the carrier automatically based on which credentials are configured.

Which carrier do I get?

ConditionSelected carrier
--carrier <name> flag passedThat carrier (validated)
Exactly one carrier has credentialsThat carrier
Multiple carriers have credentialsFirst match in this order
No carrier has credentialsExit 2 with setup help

Preference order: myparcel → sendcloud → dhl → postnl → dpd → ups → fedex.

Credential resolution

Each carrier resolves its credential(s) from, in order:

  1. Environment variable(s) listed below.
  2. preferences.json key (lowercase of the env var name) at ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json.
  3. Doppler: doppler secrets get <NAME> --plain.
CarrierEnv vars requiredDocs
MyParcelMYPARCEL_API_KEYhttps://developer.myparcel.nl/api-reference/
SendcloudSENDCLOUD_PUBLIC_KEY + SENDCLOUD_PRIVATE_KEYhttps://api.sendcloud.dev/docs/
DHL NLDHL_PARCEL_USER_ID + DHL_PARCEL_KEYhttps://api-gw.dhlparcel.nl/docs
PostNLPOSTNL_API_KEY + POSTNL_CUSTOMER_CODE + POSTNL_CUSTOMER_NUMBERhttps://developer.postnl.nl/
DPDDPD_DELIS_ID + DPD_PASSWORDhttps://esolutions.dpd.com/
UPSUPS_CLIENT_ID + UPS_CLIENT_SECRET + UPS_SHIPPER_NUMBERhttps://developer.ups.com/api/reference/shipping
FedExFEDEX_CLIENT_ID + FEDEX_CLIENT_SECRET + FEDEX_ACCOUNT_NUMBERhttps://developer.fedex.com/api/en-us/catalog/

Routing

All API calls are delegated to ${CLAUDE_PLUGIN_ROOT}/skills/ops-package/ops-package.sh. Do not re-implement curl logic inline — pass args through.

First tokenAction
carriersShow configured vs unconfigured carriers
shipCreate a shipment
labelDownload + open label PDF
trackShow status + tracking barcode
listList last 10 shipments (MyParcel / Sendcloud; others unsupported)
(empty)Show usage

ship

Required: --to "<address>". Address format:

"Person / Company, Street 12A, 1011AB Amsterdam, NL"
  • / Company segment is optional.
  • Postcode accepts with/without space; NL postcodes are normalised to uppercase without space.
  • Country defaults to NL; common names (Netherlands, Belgium, Germany, France, UK, USA) map to ISO codes.

Flags (not every carrier honours every flag — unsupported flags are safely ignored per adapter):

  • --from "<address>" override sender; default is the account's configured sender.
  • --weight <grams> integer grams.
  • --package-type 1|2|3 1=parcel (default), 2=mailbox, 3=letter (MyParcel only).
  • --signature require signature on delivery.
  • --insurance <EUR> integer EUR; 0 disables (MyParcel only).
  • --description "<text>" label reference (carriers differ; ~45 char max).
  • --pickup request home pickup at sender (MyParcel only).
Invocation
bash
${CLAUDE_PLUGIN_ROOT}/skills/ops-package/ops-package.sh \
  [--carrier myparcel|sendcloud|dhl|postnl|dpd|ups|fedex] \
  ship --to "$TO" [--from "$FROM"] [--weight "$W"] \
       [--signature] [--insurance "$INS"] [--description "$DESC"] \
       [--package-type "$TYPE"] [--pickup]

Returns:

json
{
  "carrier": "<name>",
  "shipment_id": "<id>",
  "response": {
    /* raw carrier JSON */
  }
}

Summarise to the user as:

Shipment created — <carrier> #<id>
Next: /ops:ops-package label <id>  to download the PDF.

Offer via AskUserQuestion (≤4 options):

  • [Download label now] — call label <id> immediately
  • [Track it] — call track <id>
  • [Ship another]
  • [Done]

label <shipment-id>

bash
${CLAUDE_PLUGIN_ROOT}/skills/ops-package/ops-package.sh label "$ID"

Behaviour per carrier:

  • MyParcel: PDF saved to /tmp/myparcel_label_<id>.pdf and opened on macOS. If unpaid, returns {"status":"payment_required","payment_url":"..."} and opens the MultiSafepay URL.
  • Sendcloud: Fetches the CDN PDF URL (v2 /labels/<id>) and saves locally.
  • DHL NL: Fetches /labels/<id>?format=PDF&printerType=A4.
  • DPD: Fetches /v1/parcellabelnumber/<id>?paperFormat=A4.
  • PostNL / UPS / FedEx: PDF is returned inline with the ship call and cached to /tmp/<carrier>_label_<id>.pdf. Calling label re-opens that cached file. If the cache is gone, re-run ship (none of these carriers expose a stable label-recovery endpoint here).
Show full SKILL.md (232 more words)Show less

track <shipment-id>

Returns a normalised object across all carriers:

json
{"carrier":"<n>","id":"<id>","status":"<s>","barcode":"<b>","tracking_url":"<u>","recipient":<o>,"updated":"<ts>"}

list

MyParcel returns the last 10 shipments. Sendcloud returns the last 10 parcels. All other carriers return {"shipments":[],"note":"..."} because their APIs don't expose a customer-facing list endpoint — track by id instead.

carriers

Prints which carriers are configured (✓) vs which are missing credentials (·). Use this when deciding which --carrier to pass.

Error handling

  • No carrier configured → script exits 2 with a checklist of envs. Surface it verbatim, then via AskUserQuestion: [Paste key now] [Open carriers doc] [Skip — configure later] On "Paste key now", collect via AskUserQuestion free-text and write to preferences.json.
  • 4xx from carrier → dump the JSON error body and stop. Do not retry silently.
  • Address parser looks wrong → re-prompt the user with the parsed breakdown and ask for corrections before POSTing.

Verification status

CarrierStatus
MyParcelVerified against api.myparcel.nl v1.1 (same working reference)
SendcloudVerified request/response shapes against Sendcloud Panel API v3
DHL NLUNVERIFIED — modelled on My DHL Parcel Swagger, needs live account
PostNLUNVERIFIED — modelled on Send API v2.2 docs, needs live account
DPDUNVERIFIED — modelled on DPD eSolutions REST, needs live account
UPSUNVERIFIED — modelled on UPS v2403 Ship/Track REST, needs account
FedExUNVERIFIED — modelled on FedEx Ship v1 + Track v1 REST

Unverified adapters are tagged with # UNVERIFIED - pending live test with account in the source. Payloads match the documented contract; adjustments may be needed when tested against live accounts.

© Lifecycle-Innovations-Limited, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files in claude-ops/skills/ops-package of Lifecycle-Innovations-Limited/claude-ops.

  • SKILL.md
  • lib/carriers/dhl.sh
  • lib/carriers/dpd.sh
  • lib/carriers/fedex.sh
  • lib/carriers/myparcel.sh
  • lib/carriers/postnl.sh
  • lib/carriers/sendcloud.sh
  • lib/carriers/ups.sh
  • lib/common.sh
  • ops-package.sh

Open the folder on GitHubat commit 1aa0928

Compare with similar skills

Ops Package next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ops Package compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ops Package this skillLifecycle-Innovations-Limited/claude-ops542—~2kAutomated safety check: NotesMIT
Knowledge Opsaffaan-m/ECC276k2 repos~1.7kAutomated safety check: PassMIT
Research Opsaffaan-m/ECC276k2 repos~902Automated safety check: PassMIT
Terminal Opsaffaan-m/ECC276k2 repos~750Automated safety check: PassMIT
Messages Opsaffaan-m/ECC276k1 repos~724Automated safety check: PassMIT
Email Opsaffaan-m/ECC276k1 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Knowledge Ops

    affaan-m/ECC

    Knowledge base management, ingestion, sync, and retrieval across multiple storage layers (local files, MCP memory, vector stores, Git repos).

    276k GitHub starsUsed in 2 repos~1.7k tokens
    Knowledge ManagementAuto-check passed
  • Research Ops

    affaan-m/ECC

    Evidence-first current-state research workflow for ECC. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 2 repos~902 tokens
    Research & ScienceAuto-check passed
  • Terminal Ops

    affaan-m/ECC

    Evidence-first repo execution workflow for ECC. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 2 repos~750 tokens
    Testing & QAAuto-check passed
  • Messages Ops

    affaan-m/ECC

    Evidence-first live messaging workflow for ECC. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 1 repo~724 tokens
    Productivity & AutomationAuto-check passed
  • Email Ops

    affaan-m/ECC

    Evidence-first mailbox triage, drafting, send verification, and sent-mail-safe follow-up workflow for ECC.

    276k GitHub starsUsed in 1 repo~1.1k tokens
    Writing & ContentAuto-check passed
  • GitHub Ops

    affaan-m/ECC

    GitHub repository operations, automation, and management. An agent skill from affaan-m/ECC.

    276k GitHub starsUsed in 2 repos~1.5k tokens
    DevelopmentAuto-check: warnings

More from Lifecycle-Innovations-Limited/claude-ops

All 67 skills in this repo
  • Ops Dash

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "ops dashboard", "pixel HQ", or…

    542 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Ops Gtm

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…

    542 GitHub stars~3.7k tokensUpdated today
    Auto-check: notes
  • Ops Marketing

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "klaviyo", "ads spend", or…

    542 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Ops Socials

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "tweet", "post to linkedin", or…

    542 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes
  • Ops Yolo

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "yolo mode", "run the business today"…

    542 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Ops Monitor

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "datadog", "APM alerts", or…

    542 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check: notes

Questions about Ops Package

What does Ops Package do?

OPS on-demand: This skill should be used when the user asks to "ship a parcel", "print a label", or…. Ops Package is an agent skill from Lifecycle-Innovations-Limited/claude-ops.

When should I use Ops Package?

Ops Package fits situations like: asks to ship a parcel.

How do I install Ops Package in Claude Code?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-package -a claude-code`. Or copy the skill folder (claude-ops/skills/ops-package in Lifecycle-Innovations-Limited/claude-ops) into .claude/skills/ops-package in your project. Claude Code loads it when a task matches its description.

How do I install Ops Package in Codex?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-package -a codex`. Or copy the skill folder (claude-ops/skills/ops-package in Lifecycle-Innovations-Limited/claude-ops) into .agents/skills/ops-package in your project. Codex loads it when a task matches its description.

Can I use Ops Package in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-package -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ops-package, .gemini/skills/ops-package, .github/skills/ops-package and .opencode/skills/ops-package in your project.

What does Ops Package need to run?

Going by SKILL.md and its folder, Ops Package needs a shell for the scripts in its folder and credentials named MYPARCEL_API_KEY, SENDCLOUD_PUBLIC_KEY, SENDCLOUD_PRIVATE_KEY and DHL_PARCEL_KEY. Our summary lists: A Bash shell; A credential in MYPARCEL_API_KEY; A credential in SENDCLOUD_PUBLIC_KEY. Its frontmatter pre-approves these tools: Bash, Read, AskUserQuestion.

Does Ops Package access the network?

SKILL.md names 6 domains. As links in the text: api.sendcloud.dev, api-gw.dhlparcel.nl, developer.postnl.nl, esolutions.dpd.com, developer.ups.com and developer.fedex.com. This is read from the text; nothing was executed.

Is Ops Package safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Ops Package use?

Ops Package is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ops Package use?

About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ops Package?

Skills that share tags, products or a category with Ops Package: Knowledge Ops (affaan-m/ECC, 276k stars), Research Ops (affaan-m/ECC, 276k stars), Terminal Ops (affaan-m/ECC, 276k stars) and Messages Ops (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ops Package?

Lifecycle-Innovations-Limited (a GitHub organization) maintains it in Lifecycle-Innovations-Limited/claude-ops, which has 542 GitHub stars. The repository holds 67 skills in this directory. The repository was last updated on October 9, 2026.

Source: Lifecycle-Innovations-Limited/claude-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.