Reference

The operational reference for the temper CLI, cloud sync, and MCP server. For the conceptual frame — what Temper is, and why — start with cognitive maps, or read the commitments in theory.

Install

macOS (Apple Silicon) and Linux (x86_64):

curl -fsSL https://raw.githubusercontent.com/tasker-systems/temper/main/scripts/install/install.sh | sh

Windows (x86_64, PowerShell):

irm https://raw.githubusercontent.com/tasker-systems/temper/main/scripts/install/install.ps1 | iex

Supported platforms: macOS (Apple Silicon), Linux (x86_64), and Windows (x86_64). File issues at github.com/tasker-systems/temper/issues if you hit problems.

To pin a version, pass --version vX.Y.Z to the install script (… | sh -s -- --version vX.Y.Z). The install playbook covers Homebrew, uninstalling, other platforms, and troubleshooting.

Build from source

If you'd rather compile locally (Intel Mac, Linux arm64, or just to hack on temper itself):

git clone https://github.com/tasker-systems/temper.git
cd temper
cargo install --path crates/temper-cli --locked --features embed,extract

The embed feature pulls in ONNX Runtime for local embeddings; extract enables document ingestion via kreuzberg. Both are enabled by default.

Getting started

The local vault is a directory of markdown files with YAML frontmatter — a read-only projection of cloud state, not the source of truth (see Cloud). Temper resolves its config from ~/.config/temper/config.toml or a per-project .temper/config.toml.

temper initInitialise a new vault — walks vault location, contexts to create, and instance setup.
temper context create <name>Create a context (project) on the server. The output carries its ref (@you/<slug>) — use that ref everywhere else.
temper warmup --context <ctx-ref>Session primer — recent work, open tasks, recent decisions. Pipe into an agent's first prompt. The context is a ref (@me/myapp) — bare names are not addressable.
temper pull <ctx>Re-materialise a context's projection from the cloud into the local vault.
temper statusVault overview: contexts, resource counts, recent activity.
temper checkVerify vault integrity and tool health.

To add content, create a resource and pipe in a body — temper resource create --type research --title "…" --body @notes.md. See Resources.

Resources

Every piece of knowledge in temper is a resource — a markdown file with typed frontmatter. The CLI's --type flag accepts six workflow types; the platform's full vocabulary is fourteen doc types — these six plus fact, memory, question, theme, concern, principle, commitment, and domain. The MCP server's describe_schema tool enumerates the live list. The six workflow types:

goalOutcome — what we're building.
researchSurvey of alternatives, constraints, prior art.
decisionWhat we chose, and why.
taskUnit of work — what comes next.
sessionWhat happened — record of a working session.
conceptShared vocabulary within the vault.

Resources are addressed by ref — a UUID, or the decorated slug-<uuid> form (resolved by the trailing UUID; the slug half is presentation, so a stale slug is harmless). Every list / show / search row prints a ref field — copy it, paste it.

Create · list · show · update · delete

temper resource create --type <t> --title <title>Create a resource. Add --body @file.md (or pipe markdown via stdin) for content; --context, --goal, --mode, --effort as needed.
temper resource list --type <t>List resources of a type (--type is required). Filters: --context, --stage, --goal, --limit; --with open-meta / --fields for cheaper reads.
temper resource show <ref>Show a resource by ref. Add --edges for its graph edges, or --without body for frontmatter without the body.
temper resource update <ref> --title <t>Update the title. (Body: --body @file.md or pipe markdown via stdin.)
temper resource update <ref> --context-to <ctx>Move the resource to a different context.
temper resource update <ref> --stage <s>Task stage: backlog, in-progress, done, cancelled.
temper resource update <ref> --mode <m>Task mode: plan, build.
temper resource update <ref> --effort <e>Task effort: small, medium, large.
temper resource update <ref> --relates-to <ref>Add a relationship. Repeatable. Similar: --references, --depends-on, --extends, --preceded-by, --derived-from.
temper resource update <ref> --branch <name> --pr <url>Task metadata: attach a git branch or PR URL.
temper resource delete <ref>Soft-delete on the server (the authoritative action; the row is preserved server-side). --force is accepted but vestigial — deletion is non-interactive.

Search

temper search combines full-text and semantic search — your query is embedded locally and matched by meaning, not just keywords.

temper search <query>Hybrid search across the vault.
--context <ctx-ref>Scope to one context.
--cogmap <ref>Scope to a single cognitive map (mutually exclusive with --context).
--doc-type <type>Filter by doc type.
--limit <n>Cap results (default 10).
--offset <n>Skip this many results.
--within <ref>Narrow to specific resources, by ref. Repeatable; composes with --context / --cogmap.
--text-onlySkip semantic search (no local embedding needed).

Relationships

Resources aren't isolated — typed edges connect them, and search can expand along those edges to surface neighbors. Edges are first-class: asserted explicitly, then re-typed, re-weighted, or folded as the understanding changes. Source and target are refs; an edge is addressed by its own handle (a UUID).

temper edge assert <source> <target> --kind <k> --polarity <p> --label <text>Assert a typed edge. Kinds: express, contains, leads-to, near. Polarity: forward or inverse. Optional --weight (default 1.0).
temper edge retype <edge-handle> --kind <k> --polarity <p>Change an edge's kind and polarity.
temper edge reweight <edge-handle> --weight <n>Change an edge's weight.
temper edge fold <edge-handle> [--reason <text>]Fold (supersede) an edge — it stops contributing to projections, with the reason recorded.

Cloud

Temper Cloud is the Postgres-native source of truth, with pgvector-powered semantic search. The local vault is the inverse of the old model: a read-only projection cache, not the canonical copy. Writes (resource create/update/delete, edge) route straight to the API and take effect immediately; temper pull <ctx> re-materialises the local markdown from server state. Removing a projected file with rm is just a local cache miss — it has no server effect.

Auth

temper auth loginBrowser-based OAuth with PKCE. Caches the token locally.
temper auth statusShow current auth state.
temper auth logoutClear cached credentials.
temper auth tokenStore a JWT directly (for API-only clients or manual auth).
temper auth export-tokenPrint the cached JWT to stdout — pipe into a cloud session's secret manager as TEMPER_TOKEN.

Teams

temper team create <slug>Create a team — you become its owner. --name sets the display name; --parent <ref> nests it.
temper team listList the teams you are a member of.
temper team show <slug>Show a team's detail and member roster.
temper team invite <team> <email> --role <role>Invite an email (owner/maintainer). Prints the invitation with its token; no email is sent — the address is a correlator.
temper team join <token>Accept a team invitation by its token.
temper team add-member <team-id> <profile-id> --role <role>Add an existing profile directly (owner/maintainer). Takes UUIDs, not slugs.
temper team set-role <team> <profile-id> --role <role>Change a member's role (owner/maintainer).
temper team remove-member <team> <profile-id>Remove a member (owner/maintainer).
temper team leave <team>Leave a team you are a member of.
temper team reassign <team> --from <uuid> --to <uuid>Bulk-reassign a departing member's team-scoped resources (offboarding).

Agents

Temper is built to be legible to AI coding agents. Two integration paths — a Claude Code skill file, or the remote MCP server.

Skill file

A generated skill file teaches an agent your vault's structure, doc types, and workflow vocabulary — for Claude Code, opencode, or any ~/.agents-compatible tool:

temper skill install
temper skill installInstall the skill (--target agents|claude|opencode, default agents; --path <dir> installs elsewhere).
temper skill generatePreview the skill content to stdout without installing.
temper skill checkReport installation status.

To automatically prime new agent sessions with recent context, add a SessionStart hook:

{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "temper warmup --context @me/myapp"
      }]
    }]
  }
}

MCP server

The remote MCP server exposes vault operations as structured tools over Streamable HTTP. Agents authenticate via OAuth 2.1 + PKCE — you'll be prompted to log in on first connection. Connect Claude Desktop or Claude Code:

{
  "mcpServers": {
    "temper": {
      "url": "https://temperkb.io/mcp"
    }
  }
}

Core tools

searchFull-text and semantic search across the knowledge base.
list_resourcesList resources, filtered by context and/or doc type. Most recent first.
get_resourceGet a resource by ref, optionally with full markdown content.
create_resourceCreate a resource with optional markdown content. Name-based context and doc type.
update_resourceUpdate a resource's title, slug, or content. New content triggers re-indexing.
update_resource_metaUpdate a resource's managed/open frontmatter without touching the body.
delete_resourceSoft-delete a resource by ID.
relationshipAssert, retype, reweight, or fold typed edges between resources (action discriminator).
context_read / context_manageRead and manage contexts (workspaces).
describe_schemaDescribe doc types and their schemas.
run_queryRun a composed query — a declared DAG of acts answered in one round trip.
element_trailRead a resource's or edge's append-only event trail.

The tool surface also covers cognitive maps (cogmap_*), blobs (blob_*), data artifacts (commit_data_artifact and friends), and facets (facet_set / facets_read) — the full list is what the server advertises over MCP, so your client's tool list is the reference.

Config

Global config lives at ~/.config/temper/config.toml. A per-project .temper/config.toml overrides it when temper is run from that directory.

temper config editOpen config.toml in $EDITOR — validate-then-save semantics.
TEMPER_VAULT=<path>Env var override for the vault path. Also accepted as --vault <path> on any command.
← Back to home