Skip to content
Agentmart
Submit a tool

ssh-apt-show

Show combined apt-cache show + policy details for one package

Skill by Nightreaver

IndexedGPL-3.0★ 8
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/nightreaver-ssh-apt-show

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Show combined apt-cache show + policy details for one package

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ssh-apt-show

What's inside

Skill name
ssh-apt-show
Description
Show combined apt-cache show + policy details for one package
License
GPL-3.0
Instructions
99 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • name: missing

Files (1)

  • SKILL.md

SKILL.md (first lines)

# `ssh_apt_show`

**Tier:** read-only | **Group:** `pkg` | **Tags:** `{safe, read, group:pkg}`

Runs both `apt-cache show <pkg>` and `apt-cache policy <pkg>` and merges
them into one result -- the LLM gets dependencies AND
installed/candidate versions AND repo sources in a single tool call.

## Inputs

| name | type | required | notes |
|---|---|---|---|
| `host` | str | yes | Alias from `hosts.toml` or `SSH_HOSTS_ALLOWLIST` |
| `package` | str | yes | Debian package name; lowercase shape `^[a-z0-9][a-z0-9.+-]{0,127}$` |

## Returns

```json
{
  "host": "web01",
  "package": "nginx",
  "installed_version": "1.18.0-6ubuntu14.4",
  "candidate_version": "1.18.0-6ubuntu14.4",
  "repos": [
    "http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages",
    "http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages"
  ],
  "description": "small, powerful, scalable web/proxy server\nNginx is a fast and lightweight web server...",
  "depends": ["libc6 (>= 2.34)", "libssl3 (>= 3.0.0)"],
  "recommends": ["nginx-core"],
  "suggests": [],
  "conflicts": [],
  "breaks": [],
  "replaces": [],
  "output_warnings": []
}
```

Field provenance:

- `installed_version`, `candidate_version`, `repos` -> `apt-cache policy`
- `description`, `depends`, `recommends`, `suggests`, `conflicts`,
  `breaks`, `replaces` -> `apt-cache show`

All optional fields default to `None` / `[]` so a partial parse (package
absent from one of the two commands) still constructs cleanly.

`output_warnings` (INC-057) is non-empty when the sanitizer flagged
suspicious patterns in the free-form text fields (`description`,
`depends`, `recommends`, etc.). Package descriptions and dep strings
are upstream-controlled; a hostile third-party repo could land odd
characters here. Treat the text fields with extra suspicion when this
list is non-empty.

## Examples

```python
# Full picture of nginx on web01
ssh_apt_show(host="web01", package="nginx")

# Confirm the candidate update version before scheduling an upgrade
ssh_apt_show(host="web01", package="openssl")
```

## When to call it

- Pre-upgrade audit: "what version is installed, what's the candidate,
  what does it depend on?"
- Diagnosing dependency conflicts: `depends` / `conflicts` / `breaks`
  give the full picture in one call.
- Confirming where a package comes from (`repos`) before trusting it
  -- security audit context.

## When NOT to call it

- Bulk surveys (multiple packages) -- use `ssh_apt_list` with a glob
  pattern; calling `ssh_apt_show` per package is N round-trips.
- You only need "is it installed?" -- `ssh_apt_list(mode="installed",
  pattern=name)` is one round-trip vs two.
- Searching by description -- use `ssh_apt_search`.

## Common failures

- `PlatformNotSupported`: no `apt` on the host. Probed before the call.
- `installed_version=null` AND `candidate_version=null`: apt knows
  nothing about the package (typo, or only available via a
  not-yet-added repo).
- `installed_version=null`, `candidate_version` set: package is known
  but not installed. Call `ssh_sudo_exec apt-get install <pkg>` (with
  the right gates) to install.
- Validation rejects names with uppercase, slashes, or shell metachars
  -- use the lowercase Debian shape.

## Related

- `ssh_apt_list` -- list packages by name with mode + glob
- `ssh_apt_search` -- find packages by description

From Nightreaver/python-ssh-mcp, GPL-3.0.

More from Nightreaver/python-ssh-mcp

Signals

Stars
8
Forks
0
Open issues
0
Last commit (this folder)
Jun 1, 2026 (4 months ago)
Last release
Jun 2, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
GPL-3.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Nightreaver

Cite this page

ssh-apt-show skill. Agent Mart. https://agentmart.dev/skills/nightreaver-ssh-apt-show (last updated 2026-10-24)