MCP Server, CLI & API Reference
Connect any MCP-compatible agent — or use the CLI directly from your terminal. One platform, two interfaces, 60+ tools across every domain in the workspace.
Démarrage rapide
Connectez votre agent en moins de 5 minutes.
1. Obtenez un Personal Access Token
Connectez-vous à Siftable, allez dans Paramètres → Tokens API, et créez un nouveau token. Les tokens sont scopés — vous choisissez quels domaines le token peut accéder.
2. Configurez votre client MCP
Ajoutez Siftable à la configuration MCP de votre agent. Fonctionne avec Claude Code, Cursor, Windsurf, et tout client compatible MCP.
{ "mcpServers": { "siftable": { "url": "https://siftable.io/api/v1/mcp/sse", "headers": { "Authorization": "Bearer sift_pat_your_token_here" } } } }
3. Vérifiez la connexion
Demandez à votre agent de lister vos projets ou tâches. S'il retourne des données, vous êtes connecté.
# 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 — 169 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 · current: @siftable/cli@0.5.29 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.
Authentification
Siftable prend en charge deux méthodes d'authentification. Utilisez le flux d'appareil pour les sessions CLI interactives, ou les jetons d'accès personnels pour les clients MCP et le CI/CD.
Flux d'appareil (CLI)
Exécutez exf auth login. Le CLI ouvre votre navigateur, vous vous connectez avec Google et approuvez le code de l'appareil. Un PAT est généré et stocké automatiquement dans ~/.config/exf/. Aucun jeton à copier-coller.
Jeton d'accès personnel (MCP & API)
Pour les clients MCP et l'accès programmatique, créez un jeton dans Paramètres → Jetons API. Transmettez-le dans l'en-tête Authorization :
Authorization: Bearer sift_pat_your_token_here
Les jetons sont limités à des domaines spécifiques (tâches uniquement, calendrier uniquement, accès complet, etc.). Pour les pipelines CI, définissez EXF_PAT comme variable d'environnement.
$ sift auth login $ sift auth status $ sift auth logout
Les portées des jetons et les opérations d'écriture disponibles dépendent de la configuration et du forfait de votre espace de travail. Consultez Paramètres → Jetons API et Tarification pour connaître les limites actuelles de votre compte.
Connexion MCP
Siftable utilise le transport Server-Sent Events (SSE) pour MCP. L'endpoint est :
https://siftable.io/api/v1/mcp/sse
Compatible avec tout client MCP supportant le transport SSE : Claude Code, Claude Desktop, Cursor, Windsurf, Continue, et les implémentations custom utilisant le SDK MCP.
Tâches
| 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"}
Calendrier
| 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
Projets
| 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. |
Connaissances
| 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"}]'
Contacts
| 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. |
Codebase
Indexez vos repositories pour la recherche sémantique de code. Siftable parse votre code en symboles et embeddings pour une récupération rapide.
| 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
Code Memory
Stockez et retrouvez des faits sur votre codebase. Décisions d'architecture, conventions, pièges, ownership — des connaissances persistantes qui survivent entre les sessions.
| 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. |
Documents
| 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_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> # Retired: opens no secret. Use the first-party web Vault.
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
Idempotence
Les opérations d'écriture (task_create, note_create, calendar_create_event, etc.) acceptent un paramètre optionnel idempotencyKey. Si vous réessayez une requête avec la même clé, Siftable retourne le résultat original au lieu de créer un doublon.
task_create(
title: "Review PR #247",
priority: "do_now",
idempotencyKey: "agent-run-42-task-pr247"
)
# Safe to retry. Same key = same result.
Autorisations
Les tokens sont scopés par domaine. Un token calendrier seul ne peut pas lire les tâches ou les contacts. Scopez vos tokens à l'accès minimum dont votre agent a besoin.
Scopes disponibles :
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)
Les opérations d'écriture disponibles dépendent de la portée de votre jeton et du forfait actuel de votre espace de travail. Vérifiez le jeton que vous avez émis et la page de tarification actuelle avant de vous appuyer sur des écritures en production.
Référence des commandes CLI
All 169 commands from @siftable/cli@0.5.29, generated from the oclif manifest so this page cannot drift from sift --help. Every command also accepts the global flags (--json, --token, --api-url, --workspace, --no-input).
Chaque commande accepte également les options globales : --json (sortie JSON brute), --token / SIFT_TOKEN, --api-url / SIFT_API_URL (par défaut https://siftable.io), --workspace / SIFT_WORKSPACE_ID et --no-input (désactive les invites). Les commandes destructives nécessitent --confirm ou -y.
Général
Commandes principales et diagnostics
6 commandes
sift capabilitiesAffichez les capacités de la CLI Siftable et son état de préparation
sift codebaseIndexez une base de code (analyse et transfert de fichiers)
- 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 commandsAffichez les thèmes de commandes adaptés aux agents et les points d'entrée des workflows
sift doctorDiagnostiquez la configuration locale de la CLI Siftable sans afficher vos secrets
sift interactiveLancez le copilot de terminal Siftable (sift interactive) : un assistant AI intégré pour vos tâches, votre travail, votre calendrier, vos projets et vos contacts
sift mermaidGénérez un diagramme Mermaid dans le terminal (flux, séquence, état, classe, ER, C4, architecture, mindmap). Lit un fichier .mmd ou 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
Alias d'agents.
6 commandes
sift agents createCréer un alias d'agent
- 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 disableDésactiver un alias d'agent
- Arguments
aliasrequired — Agent alias or ID
sift agents getRécupérer un alias d'agent
- Arguments
aliasrequired — Agent alias or ID
sift agents listLister les alias d'agents
- Flags
--include-disabled— Include disabled aliases
sift agents updateMettre à jour un alias d'agent
- 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 workLister le travail assigné à un alias d'agent
- Arguments
aliasrequired — Agent alias or ID- Flags
--limit <value>— Maximum results--status <value>— Work item status
Auth
Commandes d'authentification.
3 commandes
sift auth loginS'authentifier avec Siftable
sift auth logoutSupprimer l'authentification enregistrée
sift auth statusAfficher le statut de l'authentification
Calendrier
Événements de calendrier.
4 commandes
sift calendar createCréer un événement de calendrier
- 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 deleteSupprimer un événement de calendrier
- Arguments
idrequired — Event ID- Flags
-y, --yes— Skip confirmation
sift calendar listLister les événements de calendrier
- Flags
--end <value>— End date (ISO 8601)--limit <value>— Maximum number of results--start <value>— Start date (ISO 8601)
sift calendar updateMettre à jour un événement du calendrier
- 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
Outils de code.
9 commandes
sift code blameGit blame pour un fichier
- Arguments
filerequired — Relative file path- Flags
--root <value>— Repository root path
sift code expertiseActualiser l'index d'expertise développeur d'un dépôt
- Arguments
reporequired — Repository ID
sift code historyObtenir l'historique des commits d'un dépôt
- Arguments
reporequired — Repository ID- Flags
--limit <value>— Maximum number of results--path <value>— Filter by file path
sift code linkLier une tâche au code (fichier, commit ou dépôt)
- 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 deleteSupprimer un fait enregistré sur la base de code
- Arguments
idrequired — Memory ID- Flags
-y, --yes— Skip confirmation
sift code memory listLister les faits enregistrés sur la base de code
- Flags
--limit <value>— Maximum number of results--repo <value>— Repository ID
sift code memory searchRechercher des faits enregistrés sur la base de code
- 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 storeEnregistrer un fait sur la base de code
- 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-knowsTrouver les experts d'une zone du code
- Arguments
reporequired — Repository IDarearequired — Path, glob, or symbol- Flags
--limit <value>— Maximum number of results
Base de code
Indexation et recherche de code.
7 commandes
sift codebase deleteSupprimer un dépôt et toutes les données indexées
- Arguments
idrequired — Repository ID- Flags
-y, --yes— Skip confirmation
sift codebase incrementalIndexer une base de code de manière incrémentale via les fichiers modifiés dans git
- 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 listLister les dépôts indexés
sift codebase registerEnregistrer une base de code pour l'indexation
- 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 searchRecherche sémantique de code
- 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 snapshotRécupérer le dernier instantané d'index d'un dépôt
- Arguments
idrequired — Repository ID- Flags
--branch <value>— Filter by branch--materialize— Generate a download URL for the snapshot
sift codebase statusVérifier l'état de l'indexation d'un dépôt
- Arguments
idrequired — Repository ID
Codex
Outils d'automatisation Codex.
1 commande
sift codex daily-review collectCollecter le contexte Siftable en lecture seule et git local pour les revues quotidiennes Codex
- Flags
--calendar-days <value>— Calendar lookahead days--limit <value>— Maximum records per source--skip-git— Skip local git summary
Jeux de données
Jeux de données structurés.
41 commandes
sift datasets addAjouter des enregistrements à un jeu de données
- 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 aggregateAgréguer les enregistrements d'un jeu de données avec des métriques groupées (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 analyzeGénérer des analyses étayées en langage naturel pour un jeu de données
- 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-diffAppliquer un plan de diff de jeu de données enregistré
- 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 archiveArchiver un jeu de données sans supprimer sa table physique
- Arguments
idrequired — Dataset ID- Flags
-y, --yes— Confirm dataset archival without prompting
sift datasets bucketSegmenter un champ numérique ou de date en intervalles avec des métriques agrégées par segment
- 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 cleanupPlanifier ou appliquer le nettoyage des jeux de données temporaires marqués par un cycle de vie
- 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 compareComparer côte à côte les métriques des segments d'un champ catégoriel
- 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 computeCalculer des champs dérivés à partir d'un jeu de données ou d'un résultat précédent
- 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 contractAfficher un schéma de jeu de données et un contrat de capacités lisibles par un agent
- 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 createCréer un jeu de données
- 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 dedupeIdentifiez les doublons par clé sans modifier les données
- 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 deleteSupprimez définitivement un jeu de données et sa table physique
- Arguments
idrequired — Dataset ID- Flags
-y, --yes— Confirm dataset deletion without prompting
sift datasets delete-recordSupprimez un enregistrement d'un jeu de données
- Arguments
idrequired — Dataset IDrecord-idrequired — Record ID- Flags
-y, --yes— Skip confirmation
sift datasets diffPrévisualisez les modifications de lignes depuis un fichier CSV, JSON ou JSONL
- 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 listListez les plans de comparaison persistés
- 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 showAffichez un plan de comparaison persisté
- Arguments
idrequired — Diff plan ID
sift datasets exportExportez les enregistrements au format CSV, JSON, JSONL ou 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 facetsAffichez les résumés des facettes pour les champs du jeu de données
- Arguments
idrequired — Dataset ID- Flags
--fields <value>— Comma-separated field names to facet--limit <value>— Maximum values per facet
sift datasets formula-planCalculez les champs de formule et prévisualisez les mises à jour
- 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 getRécupérez les détails et le schéma du jeu de données
- Arguments
idrequired — Dataset ID
sift datasets impactExpliquez l'impact des formules, graphiques, vues, de la qualité et de la matérialisation du jeu de données
- Arguments
idrequired — Dataset ID- Flags
--from-plan <value>— Persisted diff plan ID to inspect--operation <value>— Committed dataset operation ID to inspect
sift datasets importImportez des lignes CSV, JSON ou JSONL dans un jeu de données nouveau ou existant
- 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 joinJoignez un jeu de données à lui-même via des champs avec alias comme left.Close et 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 listListez les jeux de données
- Flags
--limit <value>— Maximum number of results
sift datasets lookupRecherchez des enregistrements par correspondance exacte clé/valeur
- Arguments
idrequired — Dataset ID- Flags
--key <value>— Field name to match--limit <value>— Maximum matching records--value <value>— Exact value to match
sift datasets materializeMatérialisez un résultat dérivé dans un nouveau jeu de données temporaire
- 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 pivotCréez un résumé de type pivot à partir des métriques groupées du jeu de données
- 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 plotValidez et normalisez une charge utile de graphique légère à partir d'un résultat dérivé
- 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 profileAffichez les informations de profil d'un jeu de données
- Arguments
idrequired — Dataset ID- Flags
--sample-limit <value>— Number of sample rows to include
sift datasets queryInterrogez les enregistrements d'un jeu de données
- 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 rankClassez les enregistrements d'un jeu de données par tri ou via une formule numérique pondérée
- 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 reconcileComparez deux jeux de données par clé sans les modifier
- 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 schemaModifiez le schéma d'un jeu de données (ajout, mise à jour ou suppression de champs)
- 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 searchRecherchez des enregistrements dans les champs textuels sélectionnés
- 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 summarizeObtenez un résumé d'un jeu de données (nombre de lignes, champs, exemples de lignes)
- Arguments
idrequired — Dataset ID
sift datasets templates listListez les modèles de jeux de données intégrés
sift datasets templates showAffichez le schéma d'un modèle de jeu de données intégré
- Arguments
templaterequired — Template name
sift datasets timeseriesAnalysez les séries temporelles d'un jeu de données : lag, pct_change, fenêtres glissantes, drawdown, volatilité et corrélation
- 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-recordMettre à jour un enregistrement dans un jeu de données
- Arguments
idrequired — Dataset IDrecord-idrequired — Record ID- Flags
--fields <value>— Field updates as JSON object, e.g. '{"status":"done"}'
sift datasets validateValider un jeu de données par rapport à un modèle intégré
- 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
Importation de documents.
1 commande
sift documents uploadImporter un document (PDF, Markdown ou texte) sous forme de 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
Événements
Événements de recherche basés sur des faits de chronologie.
3 commandes
sift events attach-personAjouter un participant à un événement de recherche existant
- Arguments
eventrequired — Existing temporal fact IDpersonrequired — Person UUID to attach- Flags
--role <value>— Participant role--yes— Confirm participant attachment without prompting
sift events createCréer un fait de chronologie pour un événement de recherche avec des 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 listLister les faits chronologiques des événements de recherche
- 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
Configuration de l'Evidence Graph et orchestration des flux de preuve.
11 commandes
sift evidence diff applyAppliquer un plan de diff Evidence Graph révisé
- Arguments
idrequired — Persisted diff plan ID- Flags
--yes— Confirm applying the reviewed diff plan without prompting
sift evidence diff impactExpliquer les conséquences d'un plan de diff enregistré sur l'Evidence Graph
- 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 listLister les plans de diff Evidence Graph enregistrés
- 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 showAfficher un plan de diff Evidence Graph avec un résumé contextuel
- Arguments
idrequired — Persisted diff plan ID
sift evidence extractCréer une tâche d'agent (sans application) pour l'extraction de candidats Evidence Graph
- 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 initCréer un projet Evidence Graph et des tables de travail basées sur des jeux de données
- 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 planPlanifiez un workflow Evidence Graph avant d'écrire l'état de confiance
- 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 projectSimulez la chronologie et la projection des relations de l'Evidence Graph
- 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 reportGénérez un rapport de preuve Evidence Graph à partir d'un paquet de preuves basé sur un jeu de données
- 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 importImportez les lignes du registre source Evidence Graph dans une table source basée sur un jeu de données
- 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 verifyVérifiez la provenance, la révision, la projection et les invariants de citation de l'Evidence Graph
- Flags
--from-file <value>— Evidence packet JSON file to verify--project <value>— Evidence Graph project ID for report metadata
Graphe
Recherche d'entités dans le graphe et voisinages
5 commandes
sift graph betweenExpliquez un chemin délimité dans le graphe entre deux entités
- 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 explainExpliquez un chemin délimité dans le graphe entre deux entités
- 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 neighborsAffichez les voisins proches d'une entité dans le graphe
- 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 previewPrévisualiser une entité du graphe
- Arguments
entityrequired — Entity reference as type:uuid
sift graph searchRechercher des entités associables pour le graphe
- Arguments
queryrequired — Search query- Flags
--limit <value>— Maximum results--types <value>— Comma-separated entity types
Notes
Notes de connaissances.
7 commandes
sift notes bulk-deletePrévisualiser ou supprimer des notes par lot
- 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 createCréer une 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 deleteSupprimer une note
- Arguments
idrequired — Note ID- Flags
-y, --yes— Skip confirmation
sift notes getRécupérer une note avec son contenu complet
- Arguments
idrequired — Note ID
sift notes listLister les 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 searchRechercher des notes
- Arguments
queryrequired — Search query- Flags
--limit <value>— Maximum number of results--project <value>— Filter by project ID
sift notes updateMettre à jour une 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
Organisations
Organisations et entreprises.
5 commandes
sift organizations bulk-deletePrévisualiser ou supprimer des organisations en masse
- 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 createCréer une organisation
- 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 deleteSupprimer une organisation
- Arguments
idrequired — Organization ID- Flags
-y, --yes— Skip confirmation
sift organizations searchRechercher des organisations
- 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 updateMettre à jour une organisation
- 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
Personnes
Personnes et contacts.
11 commandes
sift people bulk-deletePrévisualiser ou supprimer des contacts en masse
- 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 createCréer un 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 deleteSupprimer un contact
- Arguments
idrequired — Person ID- Flags
-y, --yes— Skip confirmation
sift people getAfficher le profil d'une personne avec ses traits et relations
- Arguments
idrequired — Person ID
sift people graphAfficher un graphe de relations centré sur une personne
- Arguments
idrequired — Person ID- Flags
--depth <value>— Relationship graph depth--include-inactive— Include inactive relationship edges
sift people kinshipExpliquer les liens de parenté ou la distance relationnelle entre deux personnes
- Arguments
egoPersonIdrequired — Ego/source person IDtargetPersonIdrequired — Target person ID- Flags
--max-depth <value>— Maximum relationship depth
sift people listLister les 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 relateCréez ou mettez à jour une relation entre deux personnes
- 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 searchRecherchez des 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 timelineListez les faits de la timeline liés à une personne
- 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 updateMettez à jour un 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
Projets
Gérez vos projets.
7 commandes
sift projects archiveArchivez un projet
- Arguments
idrequired — Project ID- Flags
-y, --yes— Skip confirmation
sift projects contextObtenez le contexte du projet (tâches, notes, signaux)
- Arguments
idrequired — Project ID
sift projects createCréez un projet
- Flags
--emoji <value>— Single emoji--name <value>— Project name--status <planning|active|on_hold|blocked|completed>— Project status--summary <value>— Project summary
sift projects listLister les projets
- Flags
--include-archived— Include archived projects--status <planning|active|on_hold|blocked|completed>— Filter by status
sift projects planningObtenir l'instantané de planification CSN canonique d'un projet
- Arguments
idrequired — Project ID
sift projects planning-recomputeRecalculer l'instantané de planification CSN canonique d'un projet
- Arguments
idrequired — Project ID
sift projects updateMettre à jour un projet
- 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
Recettes
Recettes intégrées pour vos workflows de recherche.
2 commandes
sift recipes listLister les recettes de workflow de recherche intégrées
sift recipes showAfficher une recette de workflow de recherche intégrée
- Arguments
idrequired — Recipe ID
Recherche
Planification et orchestration des workflows de recherche.
4 commandes
sift research initCréer un projet de recherche et des jeux de données standards
- 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 planPlanifier un workflow de recherche déterministe avant l'écriture des données
- Arguments
goalrequired — Research goal- Flags
--project <value>— Existing project ID--source-dataset <value>— Existing sources dataset ID
sift research runGénérer des tâches d'agent déterministes pour une recette de recherche
- 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 statusVérifier le contexte du projet de recherche et la disponibilité de la CLI
- Arguments
project— Project ID
Skills
Skillpacks Siftable installables.
2 commandes
sift skills installInstallez un skillpack Siftable dans un répertoire local de skills
- 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 listListez les skillpacks Siftable installables
Tâches
Tâches de planification humaine.
11 commandes
sift tasks bulk-deletePrévisualisez ou supprimez des tâches en masse
- 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 completeMarquez une tâche comme terminée
- Arguments
idrequired — Task ID
sift tasks coupling-createCréez un lien de couplage CSN entre des tâches d'un même projet
- 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-deleteSupprimez un lien de couplage CSN d'une tâche
- Arguments
idrequired — Task IDedgeIdrequired — Coupling edge ID- Flags
-y, --yes— Skip confirmation
sift tasks coupling-listLister les liens de couplage CSN d'une tâche
- Arguments
idrequired — Task ID
sift tasks createCréer une tâche de planification humaine
- 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 deleteSupprimer une tâche
- Arguments
idrequired — Task ID- Flags
-y, --yes— Skip confirmation
sift tasks getAfficher les détails d'une tâche de planification humaine
- Arguments
idrequired — Task ID
sift tasks listLister les tâches de planification humaine
- 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-updateMettre à jour les champs de planification CSN d'une tâche
- 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 updateMettre à jour une tâche de planification humaine
- 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
Faits et récits de la timeline.
4 commandes
sift timeline createCréer un fait de timeline rédigé par l'utilisateur
- 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 deleteSupprimer un fait de la timeline
- Arguments
idrequired — Timeline fact ID- Flags
--yes— Confirm retraction without prompting
sift timeline listLister les faits de la timeline avec des filtres délimités
- 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 narrativeGénérer un résumé narratif ou une explication des faits de la timeline
- 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
Coffre-fort de secrets.
5 commandes
sift vault createStocker un nouveau secret chiffré
- 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 listLister les entrées du coffre-fort (métadonnées uniquement)
- 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 readRetired: Vault plaintext reveal is unavailable from the CLI
- Arguments
idrequired — Vault entry ID
sift vault searchRecherchez des entrées dans le Vault
- Arguments
queryrequired — Search query- Flags
--limit <value>— Maximum number of results
sift vault updateMettez à jour les métadonnées d'une entrée du Vault
- 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
Tâches
File d'attente des tâches de l'agent exécutable.
12 commandes
sift work blockMarquez un élément de travail comme bloqué
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work cancelAnnulez un élément de travail
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work claimRécupérez le prochain élément de travail d'agent exécutable disponible
- 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 completeApprouvez et terminez un élément de travail d'agent exécutable
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work createCréez un élément de travail d'agent exécutable
- 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 failMarquer une tâche comme échouée
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work getAfficher les détails d'une tâche d'agent exécutable
- Arguments
idrequired — Work item ID
sift work heartbeatProlonger le bail d'une tâche
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work listLister les tâches de l'agent exécutable
- 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 releaseLibérer une tâche réservée vers la file d'attente
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work reviewMarquer une tâche d'agent comme nécessitant une révision humaine
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work startMarquer une tâche comme en cours
- 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--verification-results <value>— Verification evidence JSON array: [{"command","exitCode","output"?}]
sift work verifyRun the LLM verifier against a work item's acceptance criteria and record a verifier run. Promotion to verified requires passing verification-command evidence plus a verified verdict.
- Arguments
idrequired — Work item ID- Flags
--history— List prior verifier runs instead of running a new one--model <value>— Verifier model override--reps <value>— Repeated evaluations per criterion (1-8, default 3)
Worker
Exécuteurs locaux de tâches.
1 commande
sift worker runRécupérez des tâches à exécuter, lancez une commande de worker local et signalez les artefacts à réviser.
- 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
Copilot interactif
La commande sift interactive lance un copilote de terminal pour discuter, exécuter des outils, modifier du code, créer des branches d'agents en parallèle, planifier vos tâches et générer des diagrammes — le tout depuis votre terminal, directement sur votre système de fichiers et le graphe de travail Siftable.
$ sift interactive
Configuration requise et démarrage
- Bun est requis.
sift interactiveréexécute Bun ; s'il n'est pas installé, la commande affichecurl -fsSL https://bun.sh/install | bash. - L'authentification est requise — via
--token,SIFT_TOKENousift auth login. - Le moteur s'exécute au sein du processus — il n'y a pas de démon séparé à lancer.
- L'écriture est limitée à la racine de l'espace de travail — le dossier parent le plus proche de votre répertoire de lancement contenant
.git. C'est le périmètre indiqué par/statuset appliqué par le chemin d'écriture natif.
L'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 via bash -lc into the transcript (a bare !cd <path> changes the session directory; output clipped to ~4000 chars). Large or structured pastes become a collapsed chip; pasted images are validated, normalized, and attached. ? on an empty composer shows hotkeys.
Commandes slash
Tapez / pour ouvrir le menu des commandes. Les commandes masquées restent utilisables à la saisie mais ne s'affichent pas dans le 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|use|off|logout|status] | Model | Control the Codex (ChatGPT) engine; default subcommand is status |
/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) |
/skills [name] | Skills | List discovered skills, or print one skill's body |
/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 |
/theme, /sounds [on|off] | Appearance | Open the appearance picker; toggle UI sounds |
Modèles & moteurs
The model picker (/model) is two-stage: choose a model, then a reasoning effort (saved to ~/.siftable/prefs.json). The catalog includes GPT-5.6 Sol, Terra, and Luna (ChatGPT plan via the Codex engine — /codex login / /codex on select Sol by default), Claude Opus 4.8 (OpenRouter or direct Anthropic with ANTHROPIC_API_KEY), Claude Sonnet 4.6 / Haiku 4.5, Gemini 3.x Flash / Flash-Lite, GPT-5.4 mini / nano, and Morph v3 Large (apply-only). Codex drives the OpenAI codex app-server sidecar (ChatGPT device-code login). All other providers route through the bundled OpenFunction agent via <PROVIDER>_API_KEY. /key vault <provider> hydrates a key from Siftable Vault behind an approval prompt; the secret is never printed or written to disk.
Repo Explorer
/explorer configures repository context gathering before a turn. Modes: auto, off, deterministic, scout, fanout, warpgrep. Pick a scout model and budget (cheap/normal/deep). warpgrep needs MORPH_API_KEY (auto-hydrated from Vault when available). Settings persist in prefs.json.
Compétences
Les compétences SKILL.md sont détectées par ordre de priorité (projet > utilisateur > intégré) dans <root>/{.sift,.claude,.codex,.agents}/skills, ~/.claude|.codex|.agents/skills, ~/.config/sift/skills et parmi celles incluses dans le package. L'agent peut invoquer une compétence via un outil, et jusqu'à environ 50 sont proposées dans son prompt système.
Raccourcis clavier
Les fenêtres superposées sont prioritaires sur le clavier : les raccourcis dépendent donc du mode actif.
- 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
Accélération native
Les processus critiques pour la performance (compactage du contexte, mémoire des fils de discussion longs, analyse du système de fichiers, orchestration des fusions, gestion des images) utilisent des modules natifs Zig chargés via Bun FFI. Chaque module dispose d'une solution de secours TypeScript synchronisée. Le package inclut des bibliothèques précompilées pour macOS (Apple Silicon) et Linux (x64) ; les autres plateformes utilisent la solution de secours. Définissez SIFT_NO_NATIVE=1 pour forcer les solutions de secours, et SIFT_CONTEXT_COMPACTION=1 pour activer le compteur de jetons de contexte en direct ainsi que la persistance et la reprise des fils de discussion.
Apparence et sons
/theme propose 10 thèmes (par défaut "sieve" — ambre chaud sur anthracite), enregistrés dans ~/.siftable/appearance.json. /sounds active ou désactive les effets sonores de l'interface (désactivés par défaut), enregistrés dans ~/.siftable/sounds.json et modifiables via 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. Auto-approve environment overrides are always scrubbed at launch.
Référence complète, incluant chaque commande slash, raccourci clavier, variable d'environnement et fichier de configuration : docs/interactive.md sur GitHub.