palm get
palm get reads the lock and lists what is installed, one row per entry.
palm get [kind] [names...] [-s <source>] [--files]palm get sourcespalm get targetspalm get allAliases: palm list, palm ls.
| Command | What it lists |
|---|---|
palm get |
every installed entry |
palm get skills |
installed skills only |
palm get skill tdd handoff |
two entries by name |
palm get -s mattpocock/skills |
entries from one source |
palm get mcp |
MCP servers with the variables each needs and whether they are set |
palm get --files |
every generated path with its entry |
palm get sources |
the declared sources |
palm get targets |
the project root, then each harness, whether it is active and its config folder |
palm get all |
entries, sources and targets |
palm get -g |
the global scope |
$ palm getkind name source ref sha targets files───── ───────────────────── ────────────────────────────────── ───────────── ─────── ──────────── ─────skill tdd mattpocock/skills ^1.2 → v1.2.3 2c0db90 claude,codex 5agent agent-sdk-verifier-py anthropics/claude-plugins-official main bc94689 claude,codex 2$ palm get sourcessource alias kind ref sha/tree entries────────────────────────────────── ───── ──── ───────────── ──────── ───────mattpocock/skills git ^1.2 → v1.2.3 2c0db90 1anthropics/claude-plugins-official git main bc94689 1$ palm get skills --files.agents/skills/tdd/SKILL.md skill tdd mattpocock/skills.agents/skills/tdd/agents/openai.yaml skill tdd mattpocock/skills.agents/skills/tdd/references/mocking.md skill tdd mattpocock/skills.claude/skills/tdd/SKILL.md skill tdd mattpocock/skills.claude/skills/tdd/references/mocking.md skill tdd mattpocock/skillsOptions
Section titled “Options”| Argument | Meaning |
|---|---|
kind |
skill, agent, instruction, hook, mcp, plugin; source, target or all |
names |
only these names |
| Option | Meaning |
|---|---|
-s, --source <source> |
only what came from this source |
--files |
every file palm wrote, with its entry |
The global options also apply.
Columns
Section titled “Columns”| Column | Shows |
|---|---|
kind, name |
the entry |
source |
the declared source name, or palm.yaml for a hand-declared MCP server |
ref |
the version: v1.2.3 for an exact tag, ^1.2 → v1.2.3 for a range and what it resolved to, main for a branch; empty for an in-repo source, which has no ref |
sha |
the locked commit |
targets |
the targets the entry is on |
files |
how many files palm wrote for it, and how many entries it merged |
palm describe <name> shows whether a plugin selected the entry, and its at: when palm.yaml sets one.
palm get sources shows each source’s name, alias, kind (github, git or local), ref, commit, and the number of entries.
palm get targets prints the project root first, then every target, whether it is active in this scope, and where its config lives.
Under -g, paths print as ~/....
-s <source> with a name that is not declared fails with E_NOT_FOUND and suggests the nearest declared source.
--files replaces a search of the harness folders. Pipe it to grep to find who wrote a file, or use palm describe <path>.
palm 0.3 adds a footer with the bytes each harness loads at every session start, and a layer column for personal entries.
palm get --json prints { "items": [...] }, one object per entry with kind, name, source, ref, resolved, sha, targets, files and layer, which is always team in 0.2.
palm get mcp --json adds variables: each variable a server needs, and whether it is set.
palm get targets --json carries the project root.
See JSON output.
Reads and writes
Section titled “Reads and writes”palm get reads palm.yaml and the lock, and the environment for palm get mcp. It writes nothing and needs no network.
Exit codes
Section titled “Exit codes”| Code | When |
|---|---|
0 |
The list printed, even when it is empty. |
1 |
-s names a source that is not declared. The message suggests the nearest one. |
2 |
An unknown kind word or option. |