All commands support -p, --path <path> to run against a specific directory (default .), and --dev to use a local Gateway.

init

Initialize a Latitude project in the current directory.
latitude init [-p <path>] [--dev]
  • Prompts for your API key (or uses latitude login/LATITUDE_API_KEY)
  • Detects npm project and module type (ESM/CJS)
  • Lets you choose:
    • Create a new project (provide a name)
    • Use an existing project (enter projectId)
  • Creates the prompts directory (asks before clearing a non-empty folder)
  • Writes latitude-lock.json
latitude-lock.json example:
{
  "projectId": 123,
  "rootFolder": "src/prompts",
  "version": "live",
  "npm": true
}

status

Show project and version info plus a local vs remote diff summary.
latitude status [-p <path>] [--dev]
  • Prints project link, version title/description
  • Summarizes Added/Modified/Deleted prompts

pull

Pull remote prompts to your local filesystem with a diff preview.
latitude pull [-p <path>] [-y] [--dev]
  • Computes local vs remote changes
  • Choose: Accept / Cancel / View details (opens pager for full diffs)
  • -y skips confirmation and applies changes
  • Saves prompts as:
    • npm projects: .js (ESM) or .cjs (CJS) default-exporting a string
    • non-npm projects: .promptl plain text
  • Removes local files that no longer exist remotely

push

Push local prompt changes to the current version.
latitude push [-p <path>] [-y] [--dev]
  • Reads prompt files under rootFolder
  • Shows a diff and asks for confirmation; -y skips confirmation
  • Sends only changed files to the server
  • Note: TypeScript prompt files (.ts) are not supported for reading content; use .js, .cjs, .mjs, or .promptl

checkout

Checkout a specific version or create a new version and switch to it.
latitude checkout [versionUuid] [-b <name>] [-p <path>] [--dev]
  • latitude checkout <versionUuid>: updates latitude-lock.json and pulls that version
  • latitude checkout -b <name>: creates a new version and switches to it
  • Validates the target version before updating the lock file

login

Store or override your API key in the system keychain.
latitude login [--api-key <key>] [-f]
  • Warns if LATITUDE_API_KEY is set (that variable takes precedence)
  • -f/--force to override without confirmation

help

Show CLI help.
latitude help

Prompt file formats

  • npm projects:
    • ESM (package.json has "type": "module"):
// src/prompts/welcome.js
export default 'Welcome to Latitude!'
  • CJS (default):
// src/prompts/welcome.cjs
module.exports = 'Welcome to Latitude!'
  • non-npm projects:
# prompts/welcome.promptl
Welcome to Latitude!