Skip to main content
Version: 0.4

gest artifact

Create, update, list, and manage artifacts. Artifacts store documents such as specs, ADRs, RFCs, and notes alongside your project.

Usage

gest artifact <COMMAND> [OPTIONS]

Subcommands

CommandAliasesDescription
archiveArchive an artifact
createnewCreate a new artifact
listlsList artifacts with optional filters
showviewDisplay an artifact's full details
updateeditUpdate an artifact's fields
tagAdd tags to an artifact
untagRemove tags from an artifact
metaRead or write metadata fields

artifact archive

Move an artifact to the archive by setting its archived_at timestamp.

gest artifact archive [OPTIONS] <ID>

Arguments

ArgumentDescription
<ID>Artifact ID or unique prefix

Options

FlagDescription
-j, --jsonOutput as JSON
-q, --quietPrint only the artifact ID

Examples

gest artifact archive abc123

artifact create

Create a new artifact from inline text, a source file, an editor, or stdin.

When --body and --source are both omitted and stdin is a terminal, $EDITOR opens for interactive editing. When stdin is a pipe, the piped content is used as the body.

gest artifact create [OPTIONS]

Options

FlagDescription
--batchRead NDJSON from stdin (one artifact per line)
-b, --body <BODY>Body content as an inline string (skips editor and stdin)
-i, --iteration <ITERATION>Add the artifact to an iteration (ID or prefix)
-j, --jsonOutput the created artifact as JSON
-k, --type <KIND>Artifact type (e.g. spec, adr, rfc, note)
-m, --metadata <METADATA>Key=value metadata pairs (repeatable)
-q, --quietPrint only the artifact ID
-s, --source <SOURCE>Read body content from a file path
--tag <TAG>Tag (repeatable, or comma-separated)
-t, --title <TITLE>Artifact title (auto-extracted from first # heading if omitted)

Examples

# Create from inline body
gest artifact create -t "Auth Spec" -k spec -b "## Overview\nAuth flow details..."

# Create from a file
gest artifact create -k adr -s docs/decisions/001-storage.md

# Create interactively (opens $EDITOR)
gest artifact create -k rfc --tag "backend,v2"

# Add to an iteration
gest artifact create -t "Sprint 3 Notes" -k note -i iter123

# Pipe body from stdin
echo "# My Spec\nDetails..." | gest artifact create -k spec

# Batch-create artifacts from NDJSON
cat artifacts.ndjson | gest artifact create --batch

# Machine-readable output
gest artifact create -t "Quick note" -k note --json
gest artifact create -t "Quick note" -k note -q

artifact list

List artifacts, optionally filtered by type, tag, or archive status.

gest artifact list [OPTIONS]

Options

FlagDescription
-a, --allInclude archived artifacts alongside active ones
--archivedShow only archived artifacts
-j, --jsonOutput as JSON
-k, --type <KIND>Filter by artifact type (e.g. spec, adr, rfc)
--tag <TAG>Filter by tag

Examples

# List active artifacts
gest artifact list

# Filter by type
gest artifact list -k spec

# Include archived
gest artifact list --all

# JSON output for scripting
gest artifact list --json

artifact show

Display an artifact's full details and rendered body.

gest artifact show [OPTIONS] <ID>

Arguments

ArgumentDescription
<ID>Artifact ID or unique prefix

Options

FlagDescription
-j, --jsonOutput as JSON instead of formatted detail

Examples

gest artifact show abc123
gest artifact show abc123 --json

artifact update

Update an artifact's title, body, type, or tags.

gest artifact update [OPTIONS] <ID>

Arguments

ArgumentDescription
<ID>Artifact ID or unique prefix

Options

FlagDescription
-b, --body <BODY>Replace the body content
-j, --jsonOutput as JSON
-k, --type <KIND>Artifact type (e.g. spec, adr, rfc, note)
-q, --quietPrint only the artifact ID
--tag <TAG>Replace all tags (repeatable, or comma-separated)
-t, --title <TITLE>New title

Examples

gest artifact update abc123 -t "Updated Title"
gest artifact update abc123 -k adr --tag "approved,backend"

# Machine-readable output
gest artifact update abc123 -t "New Title" --json

artifact tag

Add tags to an artifact, deduplicating with any existing tags.

gest artifact tag [OPTIONS] <ID> [TAGS]...

Arguments

ArgumentDescription
<ID>Artifact ID or unique prefix
[TAGS]...Tags to add (space or comma-separated)

Options

FlagDescription
-j, --jsonOutput the artifact as JSON after tagging
-q, --quietOutput only the artifact ID

Examples

gest artifact tag abc123 approved reviewed
gest artifact tag abc123 approved,reviewed

artifact untag

Remove tags from an artifact.

gest artifact untag [OPTIONS] <ID> [TAGS]...

Arguments

ArgumentDescription
<ID>Artifact ID or unique prefix
[TAGS]...Tags to remove (space or comma-separated)

Options

FlagDescription
-j, --jsonOutput the artifact as JSON after untagging
-q, --quietOutput only the artifact ID

Examples

gest artifact untag abc123 draft

artifact meta

Read or write artifact metadata fields. Metadata uses dot-delimited key paths for nested values.

gest artifact meta <COMMAND>

meta get

Retrieve a single metadata value.

gest artifact meta get [OPTIONS] <ID> <PATH>
ArgumentDescription
<ID>Artifact ID or unique prefix
<PATH>Dot-delimited key path (e.g. outer.inner)
FlagDescription
--jsonOutput as a JSON object
--rawOutput the bare value with no styling

meta set

Set a metadata value. Strings, numbers, booleans, and null are auto-detected.

gest artifact meta set [OPTIONS] <ID> <PATH> <VALUE>
ArgumentDescription
<ID>Artifact ID or unique prefix
<PATH>Dot-delimited key path (e.g. config.timeout)
<VALUE>Value to set
FlagDescription
-j, --jsonOutput as JSON
-q, --quietPrint only the entity ID

Examples

# Set a metadata field
gest artifact meta set abc123 status "approved"

# Read it back
gest artifact meta get abc123 status

# JSON output
gest artifact meta get abc123 status --json

# Raw value (no styling)
gest artifact meta get abc123 status --raw