MCP సర్వర్, CLI & API రిఫరెన్స్
ఏదైనా MCP-అనుకూల ఏజెంట్ను కనెక్ట్ చేయండి — లేదా మీ టెర్మినల్ నుండి నేరుగా CLIని ఉపయోగించండి. ఒక ప్లాట్ఫారమ్, రెండు ఇంటర్ఫేస్లు, వర్క్స్పేస్లోని ప్రతి డొమైన్లో 60+ టూల్స్.
క్విక్స్టార్ట్
మీ ఏజెంట్ను 5 నిమిషాలలోపు కనెక్ట్ చేయండి.
1. పర్సనల్ యాక్సెస్ టోకెన్ పొందండి
Siftableకు లాగిన్ అవ్వండి, సెట్టింగ్లు → API టోకెన్లుకు వెళ్ళండి, మరియు కొత్త టోకెన్ను సృష్టించండి. టోకెన్లు స్కోప్ చేయబడతాయి — టోకెన్ ఏ డొమైన్లను యాక్సెస్ చేయగలదో మీరు ఎంచుకుంటారు.
2. మీ MCP క్లయింట్ను కాన్ఫిగర్ చేయండి
మీ ఏజెంట్ యొక్క MCP కాన్ఫిగరేషన్కు Siftableను జోడించండి. క్లాడ్ కోడ్, కర్సర్, విండ్సర్ఫ్ మరియు ఏదైనా MCP-అనుకూల క్లయింట్తో పనిచేస్తుంది.
{ "mcpServers": { "siftable": { "url": "https://siftable.io/api/v1/mcp/sse", "headers": { "Authorization": "Bearer sift_pat_your_token_here" } } } }
3. కనెక్షన్ను ధృవీకరించండి
మీ ఏజెంట్ను మీ ప్రాజెక్ట్లు లేదా పనులను జాబితా చేయమని అడగండి. అది డేటాను తిరిగి ఇస్తే, మీరు కనెక్ట్ అయ్యారు.
# Agent calls: project_list() task_list(status: "in_progress") calendar_list_events(startDate: "2026-02-17", endDate: "2026-02-23") # Agent now has your full operational context.
CLI Installation
The Siftable CLI gives you the full command surface — 168 commands across every domain — from your terminal. Same API, same data, same permissions, plus an interactive copilot. The binary installs as sift (with siftable and the exf compatibility alias).
1. Install
npm install -g @siftable/cli # npm bun install -g @siftable/cli # bun pnpm add -g @siftable/cli # pnpm # or run without installing npx @siftable/cli <command>
2. Authenticate
The CLI uses device flow authentication — it opens your browser, you approve, and a token is stored locally.
$ sift auth login
Your verification code: ZFMV-SBGJ
Opening browser...
If the browser didn't open, visit: https://siftable.io/app/device?code=ZFMV-SBGJ
Waiting for authorization...
Logged in successfully!
3. Run your first command
$ sift projects list NAME STATUS TASKS Siftable active 12 Marketing Site active 4 Mobile App planning 0 $ sift projects context <id> # Full project context: tasks, signals, notes, members.
Every CLI command supports --json for machine-readable output. Pipe it into jq, feed it to scripts, or let agents parse it directly.
ప్రమాణీకరణ
Siftable రెండు ప్రామాణీకరణ పద్ధతులకు మద్దతు ఇస్తుంది. ఇంటరాక్టివ్ CLI సెషన్ల కోసం డివైస్ ఫ్లోను లేదా MCP క్లయింట్లు మరియు CI/CD కోసం పర్సనల్ యాక్సెస్ టోకెన్లను ఉపయోగించండి.
డివైస్ ఫ్లో (CLI)
exf auth loginని రన్ చేయండి. CLI మీ బ్రౌజర్ని తెరుస్తుంది, మీరు Googleతో సైన్ ఇన్ చేసి, పరికర కోడ్ను ఆమోదిస్తారు. ఒక PAT స్వయంచాలకంగా రూపొందించబడి ~/.config/exf/లో నిల్వ చేయబడుతుంది. కాపీ-పేస్ట్ చేయడానికి ఎటువంటి టోకెన్ అవసరం లేదు.
పర్సనల్ యాక్సెస్ టోకెన్ (MCP & API)
MCP క్లయింట్లు మరియు ప్రోగ్రామాటిక్ యాక్సెస్ కోసం, Settings → API Tokensలో టోకెన్ను సృష్టించండి. దానిని Authorization హెడర్లో పంపండి:
Authorization: Bearer sift_pat_your_token_here
టోకెన్లు నిర్దిష్ట డొమైన్లకు (టాస్క్లు-మాత్రమే, క్యాలెండర్-మాత్రమే, పూర్తి యాక్సెస్ మొదలైనవి) పరిమితం చేయబడతాయి. CI పైప్లైన్ల కోసం, EXF_PATని ఎన్విరాన్మెంట్ వేరియబుల్గా సెట్ చేయండి.
$ sift auth login $ sift auth status $ sift auth logout
టోకెన్ స్కోప్లు మరియు అందుబాటులో ఉన్న వ్రాత కార్యకలాపాలు మీ వర్క్స్పేస్ కాన్ఫిగరేషన్ మరియు ప్లాన్పై ఆధారపడి ఉంటాయి. మీ ఖాతాలోని ప్రస్తుత పరిమితుల కోసం సెట్టింగ్లు → API టోకెన్లు మరియు ధరలను తనిఖీ చేయండి.
MCP కనెక్షన్
Siftable MCP కోసం Server-Sent Events (SSE) ట్రాన్స్పోర్ట్ను ఉపయోగిస్తుంది. ఎండ్పాయింట్:
https://siftable.io/api/v1/mcp/sse
SSE ట్రాన్స్పోర్ట్కు మద్దతు ఇచ్చే ఏదైనా MCP క్లయింట్తో అనుకూలమైనది: Claude Code, Claude Desktop, Cursor, Windsurf, Continue, మరియు MCP SDKని ఉపయోగించి అనుకూల అమలులు.
పనులు
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| task_list | sift tasks list |
READ | List tasks with filters: status (inbox, next_action, in_progress, waiting_for, completed, archived), phase, project, limit. |
| task_get | sift tasks get |
READ | Get a single task with full details: description, due date, priority, project, linked code. |
| task_create | sift tasks create |
WRITE | Create a task. Accepts title, description, priority (do_now, schedule, delegate, someday), project, due date. |
| task_update | sift tasks update |
WRITE | Update task fields: title, description, status, priority, due date, project assignment. |
| task_complete | sift tasks complete |
WRITE | Mark a task as completed. |
| task_delete | sift tasks delete |
DELETE | Permanently delete a task. |
$ sift tasks list --status in_progress TITLE STATUS PRIORITY DUE Ship CLI docs in_progress do_now 2026-02-27 Fix device flow auth in_progress do_now - $ sift tasks create --title "Review PR #312" --priority do_now --json {"id":"abc-123","title":"Review PR #312","status":"inbox","priority":"do_now"}
క్యాలెండర్
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| calendar_list_events | sift calendar list |
READ | List events in a date range. Returns title, start/end times, location, description. Supports limit. |
| calendar_create_event | sift calendar create |
WRITE | Create a calendar event. Requires title, startTime, endTime (ISO 8601). Optional: description, location. |
| calendar_update_event | sift calendar update |
WRITE | Update an existing event's title, times, description, or location. |
| calendar_delete_event | sift calendar delete |
DELETE | Remove an event from the calendar. |
$ sift calendar list --start 2026-02-24 --end 2026-02-28 TITLE START END LOCATION Team standup Feb 25 09:00 Feb 25 09:30 Zoom Product review Feb 26 14:00 Feb 26 15:00 Conf Room B $ sift calendar create --title "Ship CLI v0.3" \ --start 2026-02-27T10:00:00Z --end 2026-02-27T10:30:00Z
ప్రాజెక్ట్లు
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| project_list | sift projects list |
READ | List projects. Filter by status (planning, active, on_hold, blocked, completed). Include archived. |
| project_get_context | sift projects context |
READ | Full project context: tasks, notes, members, signals. The richest single call for understanding a project. |
| project_create | sift projects create |
WRITE | Create a project with name, summary, status, and emoji. |
| project_update | sift projects update |
WRITE | Update project name, summary, status, or emoji. |
| project_archive | sift projects archive |
WRITE | Archive a completed or inactive project. |
జ్ఞానం
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| note_search | sift notes search |
READ | Semantic + full-text search across notes. Filter by project. |
| note_list | sift notes list |
READ | List notes. Filter by type (note, concept, meeting, reference, daily, dataset) and project. |
| note_get | sift notes get |
READ | Get full note content by ID. |
| note_create | sift notes create |
WRITE | Create a note with title, markdown content, type, and optional project. |
| note_update | sift notes update |
WRITE | Update note title, content, or type. |
| note_delete | sift notes delete |
DELETE | Delete a note. |
Datasets
Structured datasets support grounded summaries, grouped analysis, ranking, bucketing, time-series work, import/export, schema changes, and record mutations from the same CLI and MCP-backed platform.
| Capability | CLI | Access | Description |
|---|---|---|---|
| Browse and inspect | sift datasets list, get, query, summarize |
READ | List datasets, inspect schema, query records, and get row-count and sample summaries. |
| Grounded analysis | sift datasets analyze, aggregate, compare |
READ | Generate natural-language insights, grouped metrics, and side-by-side segment comparisons. |
| Ranking and bucketing | sift datasets rank, bucket |
READ | Sort or score records, then bucket numeric or date fields into ranges with metrics per bucket. |
| Time series and plots | sift datasets timeseries, plot |
READ | Compute lag, pct-change, rolling windows, drawdown, or normalize plotting payloads from derived results. |
| Import and export | sift datasets import, export |
WRITE | Bring CSVs in, append to existing datasets, or export filtered results back to CSV. |
| Create and materialize | sift datasets create, materialize |
WRITE | Create datasets directly or turn a derived result into a new scratch dataset. |
| Schema and records | sift datasets schema, add, update-record, delete-record |
WRITE | Modify field definitions, add rows, update rows, and delete rows with explicit commands. |
| Derived workflows | sift datasets join, compute |
READ | Join dataset slices and compute derived fields before materializing or plotting the result. |
$ sift datasets list $ sift datasets summarize <dataset-id> $ sift datasets analyze <dataset-id> --focus-fields BMI,Outcome $ sift datasets aggregate <dataset-id> --group-by Outcome \ --metrics '[{"operation":"count","as":"rows"},{"operation":"avg","field":"BMI","as":"avg_bmi"}]' $ sift datasets compare <dataset-id> --segment-field Outcome \ --metrics '[{"operation":"avg","field":"Glucose","as":"avg_glucose"}]' $ sift datasets rank <dataset-id> --sorts '[{"field":"BMI","direction":"desc"}]' --limit 10 $ sift datasets bucket <dataset-id> --field Age --bucket-count 5 \ --metrics '[{"operation":"count","as":"rows"}]'
వ్యక్తులు
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| people_search | sift people search |
READ | Search contacts by name. Returns relationship type, company, contact info, interaction history. |
| — | sift people list |
READ | List all contacts. CLI-only convenience wrapper. |
| person_create | sift people create |
WRITE | Create a contact with name, relationship, company, and contact details. |
| person_update | sift people update |
WRITE | Update a contact's details, relationship, or company. |
| person_delete | sift people delete |
DELETE | Delete a contact. |
కోడ్బేస్
సెమాంటిక్ కోడ్ శోధన కోసం మీ రిపోజిటరీలను ఇండెక్స్ చేయండి. Siftable మీ కోడ్ను చిహ్నాలు మరియు ఎంబెడింగ్లుగా పార్స్ చేస్తుంది, వేగవంతమైన తిరిగి పొందేందుకు.
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| codebase_list | sift codebase list |
READ | List all indexed repositories. |
| codebase_register | sift codebase register |
WRITE | Register a repository for indexing. Set root path, name, include/exclude patterns. |
| codebase_status | sift codebase status |
READ | Check indexing status for a repository. |
| codebase_index | sift codebase |
WRITE | Full index: scan and upload all files matching patterns. |
| codebase_index_incremental | sift codebase incremental |
WRITE | Git-aware incremental index. Only processes changed files since last index. |
| codebase_search | sift codebase search |
READ | Semantic code search. Filter by repository, language, symbol type (function, class, interface, type, export, impl). |
| codebase_snapshot_status | sift codebase snapshot |
READ | Get the latest index snapshot for a repository, optionally filtered by branch or materialized for download. |
| codebase_delete | sift codebase delete |
DELETE | Delete a repository and all indexed code data. |
| code_who_knows | sift code who-knows |
READ | Find developers with expertise in a code area. Based on git history and contribution patterns. |
| code_compute_expertise | sift code expertise |
WRITE | Refresh the expertise index for a repository. |
| code_history | sift code history |
READ | Get commit history. Filter by file path. |
| git_blame_symbol | sift code blame |
READ | Git blame for a file or line range. Shows who last modified each line. |
$ sift code history <repo-id> --path src/auth/service.ts $ sift code blame src/auth/service.ts --root . $ sift code expertise <repo-id> $ sift code who-knows <repo-id> src/auth $ sift code link <task-id> --repo <repo-id> --file src/auth/service.ts
కోడ్ మెమరీ
మీ కోడ్బేస్ గురించి వాస్తవాలను నిల్వ చేయండి మరియు తిరిగి పొందండి. ఆర్కిటెక్చర్ నిర్ణయాలు, సంప్రదాయాలు, సమస్యలు, యాజమాన్యం — సెషన్ల అంతటా నిలిచి ఉండే శాశ్వత జ్ఞానం.
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| code_memory_store | sift code memory store |
WRITE | Store a fact. Categories: architecture, integration, convention, entrypoint, gotcha, ownership. Optional: file path, repository. |
| code_memory_search | sift code memory search |
READ | Semantic search over stored code facts. Filter by category or repository. |
| code_memory_list | sift code memory list |
READ | List all stored code memories. Filter by repository. |
| code_memory_delete | sift code memory delete |
DELETE | Delete a stored code memory by ID. |
డాక్యుమెంట్లు
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| upload_document | sift documents upload |
WRITE | Upload a PDF, Markdown, or text file into Knowledge. Set by file path or inline content. Auto-detects type. |
Vault
Encrypted secret storage. Store API keys, credentials, OAuth tokens, SSH keys, and sensitive notes. Values are encrypted at rest and audit-logged on read.
| MCP Tool | CLI | Access | Description |
|---|---|---|---|
| vault_create | sift vault create |
WRITE | Store a new encrypted secret. Types: env_var, credential, oauth_token, ssh_key, certificate, note. |
| vault_list | sift vault list |
READ | List vault entries (metadata only — never decrypted values). Filter by type or category. |
| vault_search | sift vault search |
READ | Search vault entries by name, slug, or description. Returns metadata only. |
| vault_read | sift vault read |
READ | Decrypt and read a vault secret. Audit-logged. Only available to trusted clients. |
| vault_update | sift vault update |
WRITE | Update vault entry metadata: name, tags, category, description. |
$ sift vault create --name "Stripe API Key" --json # Interactive prompt for sensitive payload values $ sift vault list NAME TYPE CATEGORY CREATED Stripe API Key env_var payments 2026-02-25 GitHub PAT credential devtools 2026-02-20 $ sift vault read <id> # Decrypts and displays. Audit-logged.
Workflows
Cross-domain recipes that combine multiple tools. These patterns work identically via MCP or CLI.
Link Code to Tasks
Connect implementation work to the task that motivated it. Agents and teammates can trace why code changed.
task_create(title: "Implement device flow auth", priority: "do_now")
# ... implement the feature ...
task_link_code(taskId: "abc-123", repositoryId: "repo-456",
commitSha: "5cf5f22", filePath: "src/services/deviceAuthService.ts",
notes: "Fixed verification_uri to use /app/device")
task_complete(taskId: "abc-123")
$ sift tasks create --title "Implement device flow auth" --priority do_now $ sift code link abc-123 --repo repo-456 \ --commit 5cf5f22 --file src/services/deviceAuthService.ts $ sift tasks complete abc-123
Project Onboarding
New to a project? Pull the full context in three commands.
# 1. Get the big picture $ sift projects context <id> # 2. See what's in flight $ sift tasks list --project <id> --status in_progress # 3. Check code conventions $ sift code memory search "architecture and conventions"
End-of-Day Review
Summarize what happened today. Works great as an agent prompt or a manual check.
# Agent calls: calendar_list_events(startDate: "2026-02-26", endDate: "2026-02-26") task_list(status: "completed", limit: 20) task_list(status: "in_progress") # Agent now has: today's meetings, completed tasks, and remaining work. # It can draft a standup summary, update project status, or flag blockers.
$ sift calendar list --start 2026-02-26 --end 2026-02-26 $ sift tasks list --status completed --limit 20 --json | jq '.[] | .title' $ sift tasks list --status in_progress
Store a Debug Discovery
Found a gotcha? Store it so your future self (or your agent) doesn't rediscover it the hard way.
$ sift code memory store \ --fact "Device flow verification_uri must use /app/device (SPA path), not /device (marketing homepage)" \ --category gotcha \ --file src/services/deviceAuthService.ts
క్రెడిట్లు & బిల్లింగ్
ప్రతి వర్క్స్పేస్ చాట్, విశ్లేషణ మరియు టూల్-అసిస్టెడ్ చర్యల కోసం క్రెడిట్ ఆధారిత బిల్లింగ్ను ఉపయోగిస్తుంది. రీడ్ ఆపరేషన్లు సాధారణంగా భారీ రీజనింగ్ లేదా బహుళ-దశల విశ్లేషణ కంటే చౌకగా ఉంటాయి.
ప్రతి కొత్త వినియోగదారు సైన్అప్ చేసినప్పుడు 200 క్రెడిట్లను పొందుతారు, మరియు ఆ 200 క్రెడిట్లు ప్రతి నెలా పునరుద్ధరించబడతాయి. ఉచిత ప్లాన్లో ఫాస్ట్-టైర్ మోడల్లు మరియు కోర్ కాంటెక్స్ట్-మేనేజ్మెంట్ టూల్స్ సిస్టమ్ ఉంటాయి.
Pricing చూడండి, మోడల్ వారీ క్రెడిట్ ఖర్చులు మరియు ప్లాన్ వివరాల కోసం.
ఐడెంపోటెన్సీ
రైట్ ఆపరేషన్లు (task_create, note_create, calendar_create_event, మొదలైనవి) ఐచ్ఛిక idempotencyKey పరామితిని అంగీకరిస్తాయి. మీరు అదే కీతో ఒక అభ్యర్థనను మళ్లీ ప్రయత్నిస్తే, Siftable నకిలీని సృష్టించకుండా అసలు ఫలితాన్ని తిరిగి ఇస్తుంది.
task_create(
title: "Review PR #247",
priority: "do_now",
idempotencyKey: "agent-run-42-task-pr247"
)
# Safe to retry. Same key = same result.
అనుమతులు
టోకెన్లు డొమైన్ వారీగా స్కోప్ చేయబడతాయి. క్యాలెండర్-మాత్రమే టోకెన్ పనులను లేదా వ్యక్తులను చదవదు. మీ ఏజెంట్కు అవసరమైన కనీస యాక్సెస్ కోసం మీ టోకెన్లను స్కోప్ చేయండి.
అందుబాటులో ఉన్న స్కోప్లు:
tasks:read/tasks:write— Task listing, CRUD, and completioncalendar:read/calendar:write— Event listing and creationprojects:read/projects:write— Project management and contextknowledge:read/knowledge:write— Notes, search, document uploadpeople:read/people:write— Contact search and CRM updateswork:read/work:write— Agent work queue itemsorg:read— Workspace org metadatamcp:*— All MCP operations (recommended for IDE and agent use)
అందుబాటులో ఉన్న రైట్ ఆపరేషన్లు మీ టోకెన్ స్కోప్ మరియు ప్రస్తుత వర్క్స్పేస్ ప్లాన్పై ఆధారపడి ఉంటాయి. ఉత్పత్తిలో రైట్లపై ఆధారపడటానికి ముందు మీరు జారీ చేసిన టోకెన్ మరియు ప్రస్తుత ధరల పేజీని తనిఖీ చేయండి.
CLI Command Reference
Every command in the Siftable CLI, grouped by topic. This reference is generated from the CLI's own command definitions, so it stays true to the installed version. Run sift <topic> --help for live help on any topic.
Every command also accepts the global flags: --json (raw JSON output), --token / SIFT_TOKEN, --api-url / SIFT_API_URL (default https://siftable.io), --workspace / SIFT_WORKSPACE_ID, and --no-input (disable prompts). Destructive commands require --confirm or -y.
General
Top-level commands and diagnostics.
6 commands
sift capabilities
Show Siftable CLI capabilities and readiness status
sift codebase
Index a codebase (scan and upload files)
- Arguments
id— Repository ID- Flags
--exclude <value>— Comma-separated exclude glob patterns--include <value>— Comma-separated include glob patterns--incremental— Git-aware incremental index (changed files only)--path <value>— Absolute path to repository root
sift commands
Show agent-friendly command topics and workflow entry points
sift doctor
Diagnose local Siftable CLI configuration without printing secrets
sift interactive
Launch the Siftable terminal copilot (sift interactive) — an in-process AI assistant over your tasks, work, calendar, projects, and people.
sift mermaid
Render a Mermaid diagram to the terminal (flowchart, sequence, state, class, ER, C4, architecture, mindmap). Reads a .mmd file or stdin.
- Arguments
file— Path to a .mmd file (omit to read stdin)- Flags
--ascii— Use ASCII glyphs instead of Unicode box drawing--color <none|truecolor>— Color mode--height <value>— Fit into an exact N-row pane (pads/clips)--max-height <value>— Bound the diagram to N rows (no padding)--max-width <value>— Bound the diagram to N columns (no padding)--overflow <allow|clip|error>— What to do when the diagram exceeds the bounds--unicode— Use Unicode box drawing (default)--width <value>— Fit into an exact N-column pane (pads/clips)
Agents
Agent aliases.
6 commands
sift agents create
Create an agent alias
- Flags
--alias <value>— Stable alias slug, e.g. codex--capabilities <value>— Capabilities JSON object--hidden— Hide from normal user-visible lists--name <value>— Display name--operator <value>— Linked daemon/operator ID--permissions <value>— Default permissions JSON object--type <value>— Agent type
sift agents disable
Disable an agent alias
- Arguments
aliasrequired — Agent alias or ID
sift agents get
Get an agent alias
- Arguments
aliasrequired — Agent alias or ID
sift agents list
List agent aliases
- Flags
--include-disabled— Include disabled aliases
sift agents update
Update an agent alias
- Arguments
aliasrequired — Agent alias or ID- Flags
--capabilities <value>— Capabilities JSON object--hidden— Hide from normal user-visible lists--name <value>— Display name--operator <value>— Linked daemon/operator ID--permissions <value>— Default permissions JSON object--status <active|disabled>— Alias status--type <value>— Agent type--visible— Show in normal user-visible lists
sift agents work
List work assigned to an agent alias
- Arguments
aliasrequired — Agent alias or ID- Flags
--limit <value>— Maximum results--status <value>— Work item status
Auth
Authentication commands.
3 commands
sift auth login
Authenticate with Siftable
sift auth logout
Remove stored authentication
sift auth status
Show authentication status
Calendar
Calendar events.
4 commands
sift calendar create
Create a calendar event
- Flags
--description <value>— Event description--end <value>— End time (ISO 8601)--location <value>— Event location--start <value>— Start time (ISO 8601)--title <value>— Event title
sift calendar delete
Delete a calendar event
- Arguments
idrequired — Event ID- Flags
-y, --yes— Skip confirmation
sift calendar list
List calendar events
- Flags
--end <value>— End date (ISO 8601)--limit <value>— Maximum number of results--start <value>— Start date (ISO 8601)
sift calendar update
Update a calendar event
- Arguments
idrequired — Event ID- Flags
--description <value>— Event description--end <value>— End time (ISO 8601)--location <value>— Event location--start <value>— Start time (ISO 8601)--title <value>— Event title
Code
Code tools.
9 commands
sift code blame
Git blame for a file
- Arguments
filerequired — Relative file path- Flags
--root <value>— Repository root path
sift code expertise
Refresh developer expertise index for a repository
- Arguments
reporequired — Repository ID
sift code history
Get commit history for a repository
- Arguments
reporequired — Repository ID- Flags
--limit <value>— Maximum number of results--path <value>— Filter by file path
sift code link
Link a task to code (file, commit, or repository)
- Arguments
task-idrequired — Task ID- Flags
--commit <value>— Commit SHA--file <value>— File path--notes <value>— Notes about the link--repo <value>— Repository ID
sift code memory delete
Delete a stored codebase fact
- Arguments
idrequired — Memory ID- Flags
-y, --yes— Skip confirmation
sift code memory list
List stored codebase facts
- Flags
--limit <value>— Maximum number of results--repo <value>— Repository ID
sift code memory search
Search stored codebase facts
- Arguments
queryrequired — Search query- Flags
--category <architecture|integration|convention|entrypoint|gotcha|ownership>— Filter by category--limit <value>— Maximum number of results--repo <value>— Repository ID
sift code memory store
Store a codebase fact
- Flags
--category <architecture|integration|convention|entrypoint|gotcha|ownership>— Fact category--fact <value>— Fact to store (1-2 sentences)--file <value>— Related file path--repo <value>— Repository ID
sift code who-knows
Find experts for a code area
- Arguments
reporequired — Repository IDarearequired — Path, glob, or symbol- Flags
--limit <value>— Maximum number of results
Codebase
Code indexing and search.
7 commands
sift codebase delete
Delete a repository and all indexed data
- Arguments
idrequired — Repository ID- Flags
-y, --yes— Skip confirmation
sift codebase incremental
Incrementally index a codebase using git-aware changed files
- Arguments
idrequired — Repository ID- Flags
--exclude <value>— Comma-separated exclude glob patterns--include <value>— Comma-separated include glob patterns--path <value>— Absolute path to repository root
sift codebase list
List indexed repositories
sift codebase register
Register a codebase for indexing
- Flags
--auto-index— Enable automatic indexing--name <value>— Repository name--path <value>— Absolute path to repository root--project <value>— Project ID to associate
sift codebase search
Semantic code search
- Arguments
queryrequired — Search query- Flags
--language <value>— Filter by language--limit <value>— Maximum number of results--project <value>— Project ID--repo <value>— Repository ID--symbol-type <function|class|interface|type|export|impl>— Filter by symbol type
sift codebase snapshot
Get latest index snapshot for a repository
- Arguments
idrequired — Repository ID- Flags
--branch <value>— Filter by branch--materialize— Generate a download URL for the snapshot
sift codebase status
Check indexing status for a repository
- Arguments
idrequired — Repository ID
Codex
Codex automation helpers.
1 command
sift codex daily-review collect
Collect read-only Siftable and local git context for Codex daily work reviews
- Flags
--calendar-days <value>— Calendar lookahead days--limit <value>— Maximum records per source--skip-git— Skip local git summary
Datasets
Structured datasets.
41 commands
sift datasets add
Add records to a dataset
- Arguments
idrequired — Dataset ID- Flags
--record <value>— Record as JSON object, e.g. '{"name":"Alice","age":"30"}'--records <value>— Multiple records as JSON array
sift datasets aggregate
Aggregate dataset records with grouped metrics (count, avg, sum, min, max, median, stddev, percentile, ratio)
- Arguments
idrequired — Dataset ID- Flags
--filters <value>— JSON array of filters--group-by <value>— Comma-separated field names to group by--having <value>— JSON array of having clauses [{metric, operator, value}]--limit <value>— Max rows--metrics <value>— JSON array of metrics [{operation, field, as}]--sorts <value>— JSON array of sorts
sift datasets analyze
Generate grounded natural-language insights for a dataset
- Arguments
idrequired — Dataset ID- Flags
--filters <value>— JSON array of filters--focus-fields <value>— Comma-separated field names to focus analysis on--max-insights <value>— Max insights to generate--mode <descriptive|operational>— Analysis mode--signal-limit <value>— Max decision signals to return
sift datasets apply-diff
Apply a saved dataset diff plan
- Arguments
planrequired — Path to a local diff plan or persisted diff plan ID- Flags
--yes— Confirm applying the saved diff plan without prompting
sift datasets archive
Archive a dataset without dropping its physical table
- Arguments
idrequired — Dataset ID- Flags
-y, --yes— Confirm dataset archival without prompting
sift datasets bucket
Bucket a numeric or date field into ranges with aggregate metrics per bucket
- Arguments
idrequired — Dataset ID- Flags
--boundaries <value>— Comma-separated boundary values (omit for auto-bucketing)--bucket-count <value>— Number of auto-buckets (default: 5)--field <value>— Field to bucket--filters <value>— JSON array of filters--metrics <value>— JSON array of metrics
sift datasets cleanup
Plan or apply cleanup for lifecycle-tagged scratch datasets
- Flags
--dry-run— Return a deterministic cleanup plan without deleting datasets--lifecycle <value>— Lifecycle kind to clean, e.g. scratch, benchmark, research-run--limit <value>— Maximum lifecycle datasets to inspect--now <value>— Deterministic timestamp for tests and scheduled cleanup--older-than <value>— Only include datasets older than this duration, e.g. 12h, 7d--orphaned— Include stale dataset notes that no longer have a backing dataset row--tag <value>— Lifecycle tag to clean, e.g. benchmark-y, --yes— Confirm deletion when applying cleanup with --no-dry-run
sift datasets compare
Compare metrics across segments of a categorical field side-by-side
- Arguments
idrequired — Dataset ID- Flags
--filters <value>— JSON array of filters--limit <value>— Max segment values to compare--metrics <value>— JSON array of metrics--segment-field <value>— Categorical field to segment by--segment-values <value>— Comma-separated segment values (auto-discovers if omitted)
sift datasets compute
Compute derived fields from a dataset or prior derived result
- Arguments
id— Dataset ID- Flags
--computed-fields <value>— JSON array of computed fields, e.g. '[{"as":"spread","expression":"right.Close-left.Close"}]'--filters <value>— JSON array of filters--limit <value>— Maximum rows--order-by <value>— JSON array of order clauses--select <value>— Comma-separated fields to include--sorts <value>— JSON array of output sorts--source-result <value>— Inline JSON for a prior derived result--source-result-file <value>— Path to a JSON file containing a prior derived result
sift datasets contract
Show an agent-readable dataset schema and capabilities contract
- Arguments
idrequired — Dataset ID- Flags
--resolve <value>— Comma-separated semantic field references to resolve--template <value>— Validate contract against a built-in template
sift datasets create
Create a dataset
- Flags
--description <value>— Dataset description--fields <value>— Field definitions as JSON array, e.g. '[{"name":"age","type":"number"}]'--lifecycle <value>— Lifecycle kind for generated datasets, e.g. scratch, benchmark, research-run--metadata <value>— Dataset metadata as JSON object--note-id <value>— Link to an existing note--run-id <value>— Lifecycle run identifier--scratch— Shortcut for --lifecycle scratch --tags scratch--tags <value>— Comma-separated lifecycle tags--title <value>— Dataset title--ttl <value>— Lifecycle TTL duration, e.g. 12h, 7d, 30d
sift datasets dedupe
Find duplicate dataset records by key without mutating data
- Arguments
idrequired — Dataset ID- Flags
--key <value>— Field name used to group duplicates--limit <value>— Maximum records to scan in one bounded pass
sift datasets delete
Permanently delete a dataset and drop its physical table
- Arguments
idrequired — Dataset ID- Flags
-y, --yes— Confirm dataset deletion without prompting
sift datasets delete-record
Delete a record from a dataset
- Arguments
idrequired — Dataset IDrecord-idrequired — Record ID- Flags
-y, --yes— Skip confirmation
sift datasets diff
Preview dataset row changes from a CSV, JSON, or JSONL file
- Arguments
idrequired — Dataset ID- Flags
--batch-size <value>— Records per backend batch--from-file <value>— Path to CSV, JSON, or JSONL rows to compare--persist— Persist the diff plan in Siftable for later review/apply--save-plan <value>— Write an applyable diff plan JSON file--template <sources|people|events|claims|evidence_sources|evidence_source_fragments|evidence_claims|evidence_people|evidence_organizations|evidence_places|evidence_artifacts|evidence_events|evidence_relationships|evidence_contradictions>— Built-in template name--upsert-by <value>— Field name used to match existing rows
sift datasets diff-plans list
List persisted dataset diff plans
- Flags
--dataset-id <value>— Filter by dataset ID--limit <value>— Maximum plans to return--status <draft|validated|applied|rejected|expired>— Filter by plan status
sift datasets diff-plans show
Show a persisted dataset diff plan
- Arguments
idrequired — Diff plan ID
sift datasets export
Export bounded dataset records as CSV, JSON, JSONL, or Markdown
- Arguments
idrequired — Dataset ID- Flags
--filters <value>— JSON array of filters--format <csv|json|jsonl|markdown>— Export format--limit <value>— Max rows to export-o, --output <value>— Output file path (writes to stdout if omitted)--sorts <value>— JSON array of sorts
sift datasets facets
Show bounded facet summaries for dataset fields
- Arguments
idrequired — Dataset ID- Flags
--fields <value>— Comma-separated field names to facet--limit <value>— Maximum values per facet
sift datasets formula-plan
Compute formula fields and preview reviewable dataset updates
- Arguments
idrequired — Dataset ID- Flags
--computed-fields <value>— JSON array of computed fields, e.g. '[{"as":"score","expression":"confidence * reliability"}]'--filters <value>— JSON array of filters for compute source--limit <value>— Maximum rows to compute and plan--order-by <value>— JSON array of order clauses--save-plan <value>— Write an applyable diff plan JSON file--select <value>— Comma-separated fields to include in compute source--sorts <value>— JSON array of output sorts--target-fields <value>— Comma-separated computed field names to write; defaults to every computed field alias--template <sources|people|events|claims>— Built-in template name for validation--upsert-by <value>— Field used to match rows for update
sift datasets get
Get dataset details and schema
- Arguments
idrequired — Dataset ID
sift datasets impact
Explain dataset formula, graph, view, quality, and materialization impact
- Arguments
idrequired — Dataset ID- Flags
--from-plan <value>— Persisted diff plan ID to inspect--operation <value>— Committed dataset operation ID to inspect
sift datasets import
Import CSV, JSON, or JSONL rows into a new or existing dataset
- Arguments
filerequired — Path to CSV, JSON, or JSONL file- Flags
--batch-size <value>— Records per backend batch--dataset-id <value>— Import into existing dataset instead of creating a new one--description <value>— Dataset description--dry-run— Validate and plan the import without writing--lifecycle <value>— Lifecycle kind for generated datasets, e.g. scratch, benchmark, research-run--metadata <value>— Dataset metadata as JSON object when creating a new dataset--run-id <value>— Lifecycle run identifier--scratch— Shortcut for --lifecycle scratch --tags scratch--tags <value>— Comma-separated lifecycle tags--template <sources|people|events|claims|evidence_sources|evidence_source_fragments|evidence_claims|evidence_people|evidence_organizations|evidence_places|evidence_artifacts|evidence_events|evidence_relationships|evidence_contradictions>— Built-in template name--title <value>— Dataset title (defaults to filename)--ttl <value>— Lifecycle TTL duration, e.g. 12h, 7d, 30d--upsert-by <value>— Field name used to update matching rows instead of creating duplicates--yes— Confirm mutating imports without prompting
sift datasets join
Join a dataset to itself using alias-scoped fields such as left.Close and right.Close
- Arguments
idrequired — Dataset ID- Flags
--join-keys <value>— JSON array of join keys, e.g. '[{"leftField":"Date","rightField":"Date"}]'--join-type <inner|left|right>— Join type--left-alias <value>— Left alias--left-filters <value>— JSON array of left-side filters--limit <value>— Maximum joined rows--right-alias <value>— Right alias--right-filters <value>— JSON array of right-side filters--select <value>— Comma-separated alias-scoped fields to return--sorts <value>— JSON array of sorts
sift datasets list
List datasets
- Flags
--limit <value>— Maximum number of results
sift datasets lookup
Lookup dataset records by an exact key/value match
- Arguments
idrequired — Dataset ID- Flags
--key <value>— Field name to match--limit <value>— Maximum matching records--value <value>— Exact value to match
sift datasets materialize
Materialize a derived result into a new scratch dataset
- Flags
--description <value>— Dataset description--source-result <value>— Inline JSON for a derived result--source-result-file <value>— Path to a JSON file containing a derived result--title <value>— Title of the new dataset
sift datasets pivot
Create a pivot-style summary from grouped dataset metrics
- Arguments
idrequired — Dataset ID- Flags
--cols <value>— Column field--filters <value>— JSON array of filters--limit <value>— Maximum grouped cells to request--metrics <value>— JSON metrics array; defaults to count--rows <value>— Row field
sift datasets plot
Validate and normalize a lightweight plot payload from a derived result
- Flags
--chart-type <line|bar|scatter>— Chart type--series-field <value>— Optional series field--source-result <value>— Inline JSON for a derived result--source-result-file <value>— Path to a JSON file containing a derived result--x-field <value>— X-axis field--y-fields <value>— Comma-separated Y-axis fields
sift datasets profile
Show bounded profile information for a dataset
- Arguments
idrequired — Dataset ID- Flags
--sample-limit <value>— Number of sample rows to include
sift datasets query
Query records from a dataset
- Arguments
idrequired — Dataset ID- Flags
--cursor <value>— Pagination cursor from previous query--filters <value>— Filter conditions as JSON array, e.g. '[{"field":"status","value":"active"}]'--include-deleted— Include soft-deleted records--limit <value>— Maximum number of records--sorts <value>— Sort spec as JSON array, e.g. '[{"field":"name","direction":"asc"}]'
sift datasets rank
Rank dataset records by sorts or a weighted numeric formula
- Arguments
idrequired — Dataset ID- Flags
--filters <value>— JSON array of filters--formula <value>— JSON formula object {weights: [{field, weight}]}--limit <value>— Max rows--sorts <value>— JSON array of sorts
sift datasets reconcile
Compare two datasets by key without mutating either dataset
- Arguments
leftrequired — Left dataset IDrightrequired — Right dataset ID- Flags
--left-key <value>— Left dataset key field--limit <value>— Maximum rows to scan from each dataset--right-key <value>— Right dataset key field; defaults to --left-key
sift datasets schema
Modify dataset schema (add, update, or delete fields)
- Arguments
idrequired — Dataset ID- Flags
--field <value>— Field definition as JSON, e.g. '{"name":"email","type":"text"}'--field-id <value>— Field ID (required for update/delete)--operation <add_field|update_field|delete_field>— Schema operation
sift datasets search
Search dataset records across selected text-like fields
- Arguments
idrequired — Dataset IDqueryrequired — Search text- Flags
--fields <value>— Comma-separated fields to search; defaults to profile columns--filters <value>— JSON array of base filters applied to every field search--limit <value>— Maximum merged records--per-field-limit <value>— Maximum records to request per searched field
sift datasets summarize
Get a summary of a dataset (row count, fields, sample rows)
- Arguments
idrequired — Dataset ID
sift datasets templates list
List built-in dataset templates
sift datasets templates show
Show a built-in dataset template schema
- Arguments
templaterequired — Template name
sift datasets timeseries
Analyze dataset time series with lag, pct_change, rolling windows, drawdown, volatility, and correlation
- Arguments
idrequired — Dataset ID- Flags
--date-field <value>— Date field name--filters <value>— JSON array of filters--limit <value>— Maximum output rows--metrics <value>— JSON array of metric definitions--order-direction <asc|desc>— Time ordering--pivot— Emit explicit pivoted output--segment-field <value>— Optional segment field--segment-values <value>— Comma-separated segment values--transforms <value>— JSON array of transform definitions
sift datasets update-record
Update a record in a dataset
- Arguments
idrequired — Dataset IDrecord-idrequired — Record ID- Flags
--fields <value>— Field updates as JSON object, e.g. '{"status":"done"}'
sift datasets validate
Validate a dataset against a built-in template
- Arguments
idrequired — Dataset ID- Flags
--template <sources|people|events|claims|evidence_sources|evidence_source_fragments|evidence_claims|evidence_people|evidence_organizations|evidence_places|evidence_artifacts|evidence_events|evidence_relationships|evidence_contradictions>— Built-in template name
Documents
Document upload.
1 command
sift documents upload
Upload a document (PDF, Markdown, or text) as a note
- Arguments
filerequired — Path to file- Flags
--project <value>— Project ID--title <value>— Note title (defaults to filename)--type <note|concept|meeting|reference|daily|dataset>— Note type
Events
Research events backed by timeline facts.
3 commands
sift events attach-person
Attach a person participant to an existing research event
- Arguments
eventrequired — Existing temporal fact IDpersonrequired — Person UUID to attach- Flags
--role <value>— Participant role--yes— Confirm participant attachment without prompting
sift events create
Create a research event timeline fact with participants
- Flags
--body <value>— Event notes/body--confidence <low|medium|high>— Confidence level--entity <value>— Participant/entity as type:uuid or type:uuid:role; repeatable--org <value>— Organization UUID participant; repeatable--person <value>— Person UUID participant; repeatable--precision <millisecond|minute|hour|day|month|year|decade|century|millennium|mega_year|era>— Temporal precision--source <value>— Source entity as type:uuid or type:uuid:role; repeatable--source-label <value>— Source/provenance label--source-note <value>— Source/provenance note--source-url <value>— Source/provenance URL--timestamp <value>— ISO timestamp--title <value>— Event title--visibility <org_public|private|restricted>— Timeline visibility--year <value>— Historical year CE--year-end <value>— Historical end year CE
sift events list
List research event timeline facts
- Flags
--cursor <value>— Pagination cursor--end <value>— End boundary--entity <value>— Filter by entity ref type:uuid--limit <value>— Maximum events--order <asc|desc>— Sort order--person <value>— Filter by person UUID--q <value>— Text search query--start <value>— Start boundary
Evidence
Evidence Graph setup and proof workflow orchestration.
11 commands
sift evidence diff apply
Apply a reviewed Evidence Graph diff plan
- Arguments
idrequired — Persisted diff plan ID- Flags
--yes— Confirm applying the reviewed diff plan without prompting
sift evidence diff impact
Explain Evidence Graph consequences for a persisted diff plan
- Arguments
idrequired — Persisted diff plan ID, or local when using --from-file- Flags
--from-file <value>— Local diff plan JSON file to explain without API access
sift evidence diff list
List persisted Evidence Graph diff plans
- Flags
--dataset-id <value>— Filter by evidence dataset ID--limit <value>— Maximum plans to return--project <value>— Filter locally by Evidence Graph project ID when present on plans--status <draft|validated|applied|rejected|expired>— Filter by plan status
sift evidence diff show
Show an Evidence Graph diff plan with domain-aware summary
- Arguments
idrequired — Persisted diff plan ID
sift evidence extract
Create no-apply agent work for Evidence Graph candidate extraction
- Flags
--agent <value>— Assigned agent alias--context <value>— Additional input context JSON object--context-file <value>— Additional input context JSON file--dry-run— Preview work item payload without writing--no-apply— Keep extraction in proposed/diff-first mode--pack <company-origin|family-history|investigation|compliance-evidence|account-history|codebase-history>— Evidence workflow pack--project <value>— Project ID--source-dataset <value>— Evidence sources dataset ID--targets <value>— Comma-separated extraction targets--yes— Confirm work item creation without prompting
sift evidence init
Create an Evidence Graph project and dataset-backed working tables
- Arguments
namerequired — Evidence Graph project name- Flags
--dry-run— Preview project/dataset creation without writing--pack <company-origin|family-history|investigation|compliance-evidence|account-history|codebase-history>— Evidence workflow pack--yes— Confirm creation without prompting
sift evidence plan
Plan an Evidence Graph workflow before writing trusted state
- Arguments
goalrequired — Evidence Graph goal- Flags
--pack <company-origin|family-history|investigation|compliance-evidence|account-history|codebase-history>— Evidence workflow pack--project <value>— Existing project ID--source-dataset <value>— Existing evidence sources dataset ID
sift evidence project
Dry-run Evidence Graph timeline and relationship projection
- Flags
--dry-run— Preview projection without writing--from-file <value>— Local diff plan JSON file to project from without API access--from-plan <value>— Persisted diff plan ID to project from--pack <company-origin|family-history|investigation|compliance-evidence|account-history|codebase-history>— Evidence workflow pack--project <value>— Evidence Graph project ID
sift evidence proof report
Generate an Evidence Graph proof report from a dataset-backed evidence packet
- Flags
--format <json|markdown>— Report format--from-file <value>— Evidence packet JSON file to report on--project <value>— Evidence Graph project ID for report metadata
sift evidence sources import
Import Evidence Graph source ledger rows into a dataset-backed source table
- Arguments
filerequired — Path to CSV, JSON, or JSONL source ledger rows- Flags
--batch-size <value>— Records per backend batch--dataset-id <value>— Evidence sources dataset ID--dry-run— Validate and plan source import without writing--upsert-by <value>— Field name used to update matching source rows--yes— Confirm mutating imports without prompting
sift evidence verify
Verify Evidence Graph provenance, review, projection, and citation invariants
- Flags
--from-file <value>— Evidence packet JSON file to verify--project <value>— Evidence Graph project ID for report metadata
Graph
Entity graph search and neighborhoods.
5 commands
sift graph between
Explain a bounded graph path between two entities
- Arguments
sourcerequired — Source entity reference as type:uuidtargetrequired — Target entity reference as type:uuid- Flags
--depth <value>— Maximum path depth, backend clamps to 1-5--frontier-limit <value>— Maximum links to inspect per path expansion, backend clamps to 1-1000
sift graph explain
Explain a bounded graph path between two entities
- Arguments
sourcerequired — Source entity reference as type:uuidtargetrequired — Target entity reference as type:uuid- Flags
--depth <value>— Maximum path depth, backend clamps to 1-5--frontier-limit <value>— Maximum links to inspect per path expansion, backend clamps to 1-1000
sift graph neighbors
Show local graph neighbors for an entity
- Arguments
entityrequired — Entity reference as type:uuid- Flags
--depth <value>— Graph depth, backend clamps to 1-3--limit <value>— Maximum graph items, backend clamps to 1-200
sift graph preview
Preview one graph entity
- Arguments
entityrequired — Entity reference as type:uuid
sift graph search
Search linkable entities for graph work
- Arguments
queryrequired — Search query- Flags
--limit <value>— Maximum results--types <value>— Comma-separated entity types
Notes
Knowledge notes.
7 commands
sift notes bulk-delete
Preview or bulk-delete notes
- Flags
--archived— Filter by archived state--confirm— Execute deletion instead of preview--ids <value>— Comma-separated note IDs--title-contains <value>— Title substring filter--title-equals <value>— Exact title filter--title-starts-with <value>— Title prefix filter--type <note|concept|meeting|reference|daily|dataset>
sift notes create
Create a note
- Flags
--content <value>— Note content (markdown)--metadata <value>— Note metadata as JSON--metadata-file <value>— Read note metadata JSON from a file--project <value>— Project ID--title <value>— Note title--type <note|concept|meeting|reference|daily|dataset>— Note type
sift notes delete
Delete a note
- Arguments
idrequired — Note ID- Flags
-y, --yes— Skip confirmation
sift notes get
Get a note with full content
- Arguments
idrequired — Note ID
sift notes list
List notes
- Flags
--archived— Filter by archived state--limit <value>— Maximum number of results--project <value>— Filter by project ID--title-contains <value>— Title substring filter--title-equals <value>— Exact title filter--title-starts-with <value>— Title prefix filter--type <note|concept|meeting|reference|daily|dataset>— Filter by note type
sift notes search
Search notes
- Arguments
queryrequired — Search query- Flags
--limit <value>— Maximum number of results--project <value>— Filter by project ID
sift notes update
Update a note
- Arguments
idrequired — Note ID- Flags
--content <value>— Note content (markdown)--metadata <value>— Replace note metadata with this JSON object--metadata-file <value>— Read replacement note metadata JSON from a file--title <value>— Note title--type <note|concept|meeting|reference|daily|dataset>— Note type
Organizations
Organizations and companies.
5 commands
sift organizations bulk-delete
Preview or bulk-delete organizations
- Flags
--confirm— Execute deletion instead of preview--contains <value>— Name substring filter--equals <value>— Exact name filter--ids <value>— Comma-separated organization IDs--relationship <value>— Filter by relationship status--starts-with <value>— Name prefix filter--type <value>— Filter by organization type
sift organizations create
Create an organization
- Flags
--domain <value>— Domain (e.g. acme.com)--industry <value>— Industry--linkedin-url <value>— LinkedIn page URL--location <value>— Location--name <value>— Organization name--notes <value>— Notes--relationship-status <value>— Relationship status (e.g. prospect, customer, partner, vendor)--type <value>— Organization type (e.g. company, nonprofit, government, school)--website <value>— Website URL
sift organizations delete
Delete an organization
- Arguments
idrequired — Organization ID- Flags
-y, --yes— Skip confirmation
sift organizations search
Search organizations
- Arguments
query— Optional fuzzy search query- Flags
--contains <value>— Name substring filter--equals <value>— Exact name filter--limit <value>— Maximum number of results--relationship <value>— Filter by relationship status--starts-with <value>— Name prefix filter--type <value>— Filter by organization type
sift organizations update
Update an organization
- Arguments
idrequired — Organization ID- Flags
--domain <value>— Domain (e.g. acme.com)--industry <value>— Industry--linkedin-url <value>— LinkedIn page URL--location <value>— Location--name <value>— Organization name--notes <value>— Notes--relationship-status <value>— Relationship status--type <value>— Organization type--website <value>— Website URL
People
People and contacts.
11 commands
sift people bulk-delete
Preview or bulk-delete contacts
- Flags
--confirm— Execute deletion instead of preview--contains <value>— Name substring filter--equals <value>— Exact name filter--has-no-email— Only contacts without an email--ids <value>— Comma-separated person IDs--relationship <value>— Filter by relationshipToUser--starts-with <value>— Name prefix filter
sift people create
Create a contact
- Flags
--birth-year <value>— Birth year--birthday <value>— Birthday (YYYY-MM-DD)--company <value>— Company name (auto-links to organization if exists)--email <value>— Email address--estimated-age <value>— Estimated age--job-title <value>— Job title--linkedin-url <value>— LinkedIn profile URL--location <value>— Location--mbti <value>— MBTI type (e.g. INTJ, ENFP)--name <value>— Full name--notes <value>— Notes about this person--phone <value>— Phone number--relationship <value>— Relationship to user (e.g. friend, colleague, client, mentor)--website <value>— Personal website
sift people delete
Delete a contact
- Arguments
idrequired — Person ID- Flags
-y, --yes— Skip confirmation
sift people get
Get a person profile with traits and relationships
- Arguments
idrequired — Person ID
sift people graph
Show a person-centered relationship graph
- Arguments
idrequired — Person ID- Flags
--depth <value>— Relationship graph depth--include-inactive— Include inactive relationship edges
sift people kinship
Explain kinship or relationship distance between two people
- Arguments
egoPersonIdrequired — Ego/source person IDtargetPersonIdrequired — Target person ID- Flags
--max-depth <value>— Maximum relationship depth
sift people list
List contacts
- Flags
--contains <value>— Name substring filter--equals <value>— Exact name filter--has-no-email— Only contacts without an email--limit <value>— Maximum number of results--relationship <value>— Filter by relationshipToUser--starts-with <value>— Name prefix filter
sift people relate
Create or update a relationship between two people
- Arguments
personAIdrequired — First person IDpersonBIdrequired — Second person ID- Flags
--dry-run— Preview the relationship payload without writing--notes <value>— Relationship notes--type <value>— Relationship type, e.g. colleague, sibling, spouse, collaborator-y, --yes— Apply without prompting
sift people search
Search contacts
- Arguments
queryrequired — Search query- Flags
--contains <value>— Name substring filter--equals <value>— Exact name filter--has-no-email— Only contacts without an email--limit <value>— Maximum number of results--relationship <value>— Filter by relationshipToUser--starts-with <value>— Name prefix filter
sift people timeline
List timeline facts connected to a person
- Arguments
idrequired — Person ID- Flags
--limit <value>— Maximum facts to return--order <asc|desc>— Sort order--role <value>— Filter by entity role, comma-separated
sift people update
Update a contact
- Arguments
idrequired — Person ID- Flags
--birth-year <value>— Birth year--birthday <value>— Birthday (YYYY-MM-DD)--company <value>— Company name--email <value>— Email address--estimated-age <value>— Estimated age--job-title <value>— Job title--linkedin-url <value>— LinkedIn profile URL--location <value>— Location--mbti <value>— MBTI type (e.g. INTJ, ENFP)--name <value>— Full name--notes <value>— Notes about this person--phone <value>— Phone number--relationship <value>— Relationship to user--website <value>— Personal website
Projects
Project management.
7 commands
sift projects archive
Archive a project
- Arguments
idrequired — Project ID- Flags
-y, --yes— Skip confirmation
sift projects context
Get project context (tasks, notes, signals)
- Arguments
idrequired — Project ID
sift projects create
Create a project
- Flags
--emoji <value>— Single emoji--name <value>— Project name--status <planning|active|on_hold|blocked|completed>— Project status--summary <value>— Project summary
sift projects list
List projects
- Flags
--include-archived— Include archived projects--status <planning|active|on_hold|blocked|completed>— Filter by status
sift projects planning
Get the canonical CSN planning snapshot for a project
- Arguments
idrequired — Project ID
sift projects planning-recompute
Recompute the canonical CSN planning snapshot for a project
- Arguments
idrequired — Project ID
sift projects update
Update a project
- Arguments
idrequired — Project ID- Flags
--emoji <value>— Single emoji--name <value>— Project name--status <planning|active|on_hold|blocked|completed>— Project status--summary <value>— Project summary
Recipes
Built-in research workflow recipes.
2 commands
sift recipes list
List built-in research workflow recipes
sift recipes show
Show a built-in research workflow recipe
- Arguments
idrequired — Recipe ID
Research
Research workflow planning and orchestration.
4 commands
sift research init
Create a research project and standard datasets
- Arguments
namerequired — Research project name- Flags
--dry-run— Preview project/dataset creation without writing--template <historical-research>— Research template--yes— Confirm creation without prompting
sift research plan
Plan a deterministic research workflow before writing data
- Arguments
goalrequired — Research goal- Flags
--project <value>— Existing project ID--source-dataset <value>— Existing sources dataset ID
sift research run
Create deterministic agent work for a research recipe
- Arguments
reciperequired — Research run recipe- Flags
--agent <value>— Assigned agent alias--context <value>— Additional input context JSON object--context-file <value>— Additional input context JSON file--dry-run— Preview work item payload without writing--project <value>— Project ID--source-dataset <value>— Source dataset ID--yes— Confirm work item creation without prompting
sift research status
Inspect research project context and CLI readiness
- Arguments
project— Project ID
Skills
Installable Siftable skillpacks.
2 commands
sift skills install
Install a Siftable skillpack into a local skills directory
- Arguments
idrequired — Skillpack ID- Flags
--force— Replace an existing installed skill--target <value>— Installed skills directory-y, --yes— Confirm replacing an existing skill
sift skills list
List installable Siftable skillpacks
Tasks
Human planning tasks.
11 commands
sift tasks bulk-delete
Preview or bulk-delete tasks
- Flags
--confirm— Execute deletion instead of preview--done— Filter by completed state--ids <value>— Comma-separated task IDs--phase <draft|open|in_flight|review|blocked|done|cancelled>--title-contains <value>— Title substring filter--title-equals <value>— Exact title filter--title-starts-with <value>— Title prefix filter--when <now|today|soon|later>
sift tasks complete
Mark a task as complete
- Arguments
idrequired — Task ID
sift tasks coupling-create
Create a CSN coupling edge between tasks in the same project
- Arguments
idrequired — Source task IDtargetrequired — Target task ID- Flags
--note <value>— Optional note--strength <value>— Coupling strength (0-1)--type <info|resource>— Coupling type
sift tasks coupling-delete
Delete a CSN coupling edge from a task
- Arguments
idrequired — Task IDedgeIdrequired — Coupling edge ID- Flags
-y, --yes— Skip confirmation
sift tasks coupling-list
List CSN coupling edges for a task
- Arguments
idrequired — Task ID
sift tasks create
Create a human planning task
- Flags
--acceptance-criteria <value>— Acceptance criteria (semicolon-separated text, e.g. "tests pass; docs updated")--description <value>— Task description--due <value>— Due date (ISO 8601)--effort <trivial|small|medium|large|epic|unknown>— Effort estimate--phase <draft|open|in_flight|review|blocked|done|cancelled>— Lifecycle phase--priority <do_now|schedule|delegate|someday>— Priority level--project <value>— Project ID--scope <value>— Scope boundaries (JSON object with include/exclude arrays)--title <value>— Task title
sift tasks delete
Delete a task
- Arguments
idrequired — Task ID- Flags
-y, --yes— Skip confirmation
sift tasks get
Get human planning task details
- Arguments
idrequired — Task ID
sift tasks list
List human planning tasks
- Flags
--effort <trivial|small|medium|large|epic|unknown>— Filter by effort--limit <value>— Maximum number of results--phase <draft|open|in_flight|review|blocked|done|cancelled>— Filter by phase--project <value>— Filter by project ID--status <inbox|next_action|in_progress|waiting_for|completed|archived>— Filter by status--title-contains <value>— Title substring filter--title-equals <value>— Exact title filter--title-starts-with <value>— Title prefix filter
sift tasks planning-update
Update CSN planning fields for a task
- Arguments
idrequired — Task ID- Flags
--cynefin-confidence <value>— Cynefin confidence (0-1)--cynefin-domain <clear|complicated|complex|chaotic|aporetic>— Cynefin domain--cynefin-rationale <value>— Why this domain fits--cynefin-source <user|assistant|classifier>— Source of the planning classification--duration-model <value>— Duration model JSON, e.g. {"kind":"point","days":2}--reversibility <value>— Reversibility score (0-1)
sift tasks update
Update a human planning task
- Arguments
idrequired — Task ID- Flags
--acceptance-criteria <value>— Acceptance criteria (semicolon-separated text, e.g. "tests pass; docs updated")--blocked-reason <value>— Reason task is blocked--description <value>— Task description--due <value>— Due date (ISO 8601)--effort <trivial|small|medium|large|epic|unknown>— Effort estimate--phase <draft|open|in_flight|review|blocked|done|cancelled>— Lifecycle phase--priority <do_now|schedule|delegate|someday>— Priority level--project <value>— Project ID--scope <value>— Scope boundaries (JSON object with include/exclude arrays)--status <inbox|next_action|in_progress|waiting_for|completed|archived>— Task status--title <value>— Task title
Timeline
Timeline facts and narratives.
4 commands
sift timeline create
Create a user-authored timeline fact
- Flags
--body <value>— Fact body or notes--confidence <low|medium|high>— Confidence level--entity <value>— Participant/entity as type:uuid or type:uuid:role; repeatable--fact-type <value>— Fact type--precision <millisecond|minute|hour|day|month|year|decade|century|millennium|mega_year|era>— Temporal precision--source-label <value>— Source/provenance label--source-note <value>— Source/provenance note--source-url <value>— Source/provenance URL--timestamp <value>— ISO timestamp--title <value>— Fact title--visibility <org_public|private|restricted>— Timeline visibility--year <value>— Historical year CE--year-end <value>— Historical end year CE
sift timeline delete
Retract a timeline fact
- Arguments
idrequired — Timeline fact ID- Flags
--yes— Confirm retraction without prompting
sift timeline list
List timeline facts with bounded filters
- Flags
--cursor <value>— Pagination cursor--end <value>— End boundary, ISO timestamp or supported historical boundary--entity <value>— Entity filter as type:uuid--entity-role <value>— Comma-separated entity roles--fact-types <value>— Comma-separated fact types--limit <value>— Maximum items to return--order <asc|desc>— Sort order--q <value>— Text search query--source-types <value>— Comma-separated source types--start <value>— Start boundary, ISO timestamp or supported historical boundary
sift timeline narrative
Generate a narrative summary or explanation for timeline facts
- Flags
--action <summarize|changed_since|led_to|what_next|cross_object>— Narrative action--entity <value>— Entity scope as type:uuid--entity-roles <value>— Comma-separated entity roles--fact-type <value>— Fact type filter--limit <value>— Maximum timeline facts to include--participant <value>— Participant filter as type:uuid--prompt <value>— Question or custom narrative prompt--q <value>— Text query filter--related-entity <value>— Related entity as type:uuid--source-type <value>— Source type filter
Vault
Secrets vault.
5 commands
sift vault create
Store a new encrypted secret
- Flags
--category <value>— Category--description <value>— Description--name <value>— Secret name--payload <value>— JSON payload to encrypt--slug <value>— Machine-friendly identifier--tags <value>— Comma-separated tags--type <env_var|credential|oauth_token|ssh_key|certificate|note>— Entry type--url <value>— Associated URL
sift vault list
List vault entries (metadata only)
- Flags
--category <value>— Filter by category--limit <value>— Maximum number of results--type <env_var|credential|oauth_token|ssh_key|certificate|note>— Filter by entry type
sift vault read
Decrypt and read a vault secret (audit-logged)
- Arguments
idrequired — Vault entry ID
sift vault search
Search vault entries
- Arguments
queryrequired — Search query- Flags
--limit <value>— Maximum number of results
sift vault update
Update vault entry metadata
- Arguments
idrequired — Vault entry ID- Flags
--category <value>— Category--description <value>— Description--name <value>— Entry name--tags <value>— Comma-separated tags--url <value>— Associated URL
Work
Executable agent work queue.
12 commands
sift work block
Mark a work item as blocked
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work cancel
Cancel a work item
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work claim
Claim the next available executable agent work item
- Arguments
id— Optional specific work item ID- Flags
--agent <value>— Agent alias to claim for--lease <value>— Lease seconds--owner <value>— Claim owner identity
sift work complete
Approve and complete an executable agent work item
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work create
Create an executable agent work item
- Flags
--acceptance-criteria <value>— Acceptance criteria JSON array or semicolon-separated text--agent <value>— Assigned agent alias--allowed-actions <value>— Allowed actions JSON object--context <value>— Input context JSON object--project <value>— Linked project ID--prompt <value>— Agent prompt or instructions--rank <value>— Queue rank--task <value>— Parent human planning task ID--title <value>— Executable work item title--verify <value>— Verification commands separated by semicolons--write-scope <value>— Write scope JSON object
sift work fail
Mark a work item as failed
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work get
Get executable agent work item details
- Arguments
idrequired — Work item ID
sift work heartbeat
Extend a work item lease
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work list
List executable agent work items
- Flags
--agent <value>— Filter by assigned agent alias--limit <value>— Maximum results--project <value>— Filter by project ID--status <value>— Filter by status--task <value>— Filter by parent human planning task ID
sift work release
Release a claimed work item back to the queue
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work review
Mark executable agent work as needing human review
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
sift work start
Mark a work item as running
- Arguments
idrequired — Work item ID- Flags
--artifacts <value>— Artifact refs JSON array--claim-token <value>— Claim token returned by work claim--lease <value>— Lease seconds--owner <value>— Claim owner identity--reason <value>— Block or failure reason--summary <value>— Result summary
Worker
Local executable work runners.
1 command
sift worker run
Claim executable work, run a local worker command, and report needs-review artifacts
- Flags
--agent <value>— Agent alias to claim work for--command <value>— Local command to run for the claimed work item--cwd <value>— Fallback working directory for the local command--lease <value>— Lease seconds--owner <value>— Worker owner fingerprint
Interactive Copilot
The sift interactive command launches a terminal copilot that chats, runs tools, edits code, spawns parallel agent branches, plans work, and renders diagrams — all in the terminal, acting on your filesystem and the Siftable work graph.
$ sift interactive
Requirements & startup
- Bun is required.
sift interactivere-execs Bun; if it isn't installed it printscurl -fsSL https://bun.sh/install | bash. - Authentication is required — from
--token,SIFT_TOKEN, orsift auth login. - The brain runs in-process — there is no separate daemon to start.
- Writes are scoped to the workspace root — the nearest ancestor of your launch directory containing
.git. This is the boundary/statusreports and the native write path enforces.
The interface
The composer is a full readline-capable text area. Enter submits; Shift+Enter / Ctrl+J insert a newline; submitting while the agent is busy queues your message. !command runs a shell command into the transcript (a bare !cd <path> changes the session directory). Large or structured pastes become a collapsed chip; pasted images are validated and attached.
Slash commands
Type / to open the command menu. Hidden commands remain typeable but don't appear in the menu.
| Command | Group | Description |
|---|---|---|
/help, /hotkeys, /status | Session | Command list, keyboard shortcuts, and current model/scope/queue status |
/cwd [path] | Session | Show or change the working directory (recomputes the workspace root) |
/copy [last|all|explorer] | Session | Copy the latest reply, whole transcript, or latest explorer report to the clipboard |
/clear, /quit | Session | Reset the transcript; exit |
/threads [clear], /compact | Session | Manage the persisted thread; force a context compaction (requires context compaction enabled) |
/model [id] [effort] | Model | Open the model picker or select a model and reasoning effort directly |
/codex [login|on|off|status] | Model | Control the Codex (ChatGPT) engine |
/key <provider> <key>, /key vault <provider> | Model | Store a provider API key, or hydrate it from Siftable Vault |
/login | Model | Siftable device-code login from inside the TUI |
/explorer | Model | Configure the repo Explorer (context-gathering backend) |
/branches | Branches | Open the parallel-agent branches hub |
/spawn <title> [--rw <globs>|--rw-any|--ro] | Branches | Start a child agent branch in its own git worktree with an access mode |
/merge, /rebase, /sendback, /reject | Branches | Land, replay, resume, or reject a child branch |
/work | Work | Open the work-queue hub (board of agents and items by status) |
/plan [objective | work [--apply] [--after SRC:DST] [--limit N] | view] | Work | Plan from an objective, or compute a precedence DAG over the agent work queue as a Mermaid graph |
/handoff <title> [--agent ..] [--files ..] [--acceptance ..] [--verify ..] | Work | Create a Siftable work item from the current context |
/proof <claim>, /remember <fact> --category <..> | Work | Gather code/test evidence; store durable code memory |
/crew [list|show|new|run], /collab | Crews | Manage and run multi-agent crews; show in-process collaboration sessions |
/mermaid [request|file.mmd|source], /view | Diagrams | Render Mermaid (NL request, file, or source) in the terminal; open the pannable viewer |
/skills [name] | Skills | List discovered skills, or print one skill's body |
/theme, /sounds [on|off] | Appearance | Open the appearance picker; toggle UI sounds |
Models & engines
The model picker (/model) chooses a model, then a reasoning effort. The catalog includes GPT-5.5 Codex (via your ChatGPT plan), Claude Opus 4.8 (via OpenRouter or direct to the Anthropic API with ANTHROPIC_API_KEY), Claude Sonnet/Haiku, Gemini Flash, and GPT-5.4 mini/nano. The Codex engine drives the OpenAI codex app-server sidecar (it manages ChatGPT sign-in; /codex login runs a device flow). All other providers route through the bundled OpenFunction agent, reading <PROVIDER>_API_KEY from the environment. /key vault <provider> hydrates a key from Siftable Vault behind an approval prompt; the secret is never printed or written to disk.
Skills
SKILL.md skills are discovered (project > user > builtin) from <root>/{.sift,.claude,.codex,.agents}/skills, ~/.claude|.codex|.agents/skills, ~/.config/sift/skills, and the skills bundled with the package. The agent can invoke a skill via a tool, and up to ~50 are advertised in its system prompt.
Keyboard shortcuts
Overlays capture the keyboard first, so bindings are mode-specific.
- Enter submit (queues if busy) · Shift+Enter/Ctrl+J newline · Tab complete a lone
/foo· ↑/↓ prompt history - Esc abort turn → clear draft → deselect · Ctrl+C abort → clear → deselect → quit (never copies) · Ctrl+D quit on empty draft
- Cmd/Super+A select all · Cmd+C/Ctrl+Shift+C copy selection or latest reply · Ctrl+O Explorer diagnostics · ? hotkeys
- Approval gate: y/Enter allow once · a always · b bypass-all · n/Esc deny
Native acceleration
Performance-critical paths (context compaction, long-thread memory, filesystem scanning, merge orchestration, image handling) run through native Zig modules loaded via Bun FFI, each with a lockstep TypeScript fallback. The package ships prebuilt libraries for macOS (Apple Silicon) and Linux (x64); other platforms use the fallback. Set SIFT_NO_NATIVE=1 to force the fallbacks, and SIFT_CONTEXT_COMPACTION=1 to enable the live context-token meter plus thread persistence and resume.
Appearance & sound
/theme offers 10 schemes (default "sieve" — warm amber on charcoal), saved to ~/.siftable/appearance.json. /sounds toggles UI sound effects (off by default), saved to ~/.siftable/sounds.json and overridable with SIFT_SOUNDS.
The copilot is read-only by default; write/edit tools are scoped to the workspace root and gated by a four-way approval prompt (allow once / always / bypass-all / deny). With nothing listening, requests deny. EXECUTERM_AUTO_APPROVE is always scrubbed at launch.
Full reference, including every slash command, key binding, environment variable, and config file: docs/interactive.md on GitHub.