Skip to main content

Sentrify — AI-powered cross-surface command execution

Project description

Sentrify CLI

Type a command. The right surface executes it.


Overview

Sentrify CLI is the terminal input channel for the Sentrify system. It takes a natural-language command, sends it to the Sentrify Brain, and the brain routes it to whichever surface — Mac, browser, or mobile — is the right executor for the job.

The CLI knows nothing about routing or execution logic. It speaks to the brain, the brain decides what runs and where.


Usage

# One-shot command
sentrify "organize my downloads folder"
sentrify "open YouTube in the browser"
sentrify "send a text to John saying I'm on my way"

# Interactive chat mode
sentrify --chat

# Dry run — show the full execution plan without making any changes
sentrify "delete all .log files in /tmp" --dry-run

# Skip all confirmation prompts (for scripting)
sentrify "move budget.xlsx to ~/Documents/Finance" --yes

# Verbose output — show step-by-step execution detail
sentrify "list files in downloads" --verbose

Authentication

# Store your API key
sentrify auth login

# Confirm the stored key
sentrify auth status

# Remove the stored key
sentrify auth logout

API keys are stored securely in the platform config directory (platformdirs) — never in environment variables or dotfiles.


Flags

Flag Description
--chat Start an interactive multi-turn session
--dry-run Execute read-only steps, show write plan, make no changes
--yes Skip all confirmation prompts
--verbose Show detailed step output
--version Print the installed version

How It Works

sequenceDiagram
    autonumber
    participant CLI
    participant Brain
    participant Surface

    CLI->>Brain: POST /v1/intent { message }
    Brain->>Brain: classify surface + plan phase 1
    Brain-->>CLI: plan { surface, steps, is_final_phase }

    CLI->>Surface: execute steps locally
    Surface-->>CLI: step results

    alt is_final_phase: false
        CLI->>Brain: POST /v1/sessions/{id}/results
        Brain->>Brain: replan with real executor data
        Brain-->>CLI: next phase plan
    end

Multi-phase tasks — where the brain needs real-world data before it can plan the next step — loop automatically. The CLI executes, reports results back to the brain, and receives the grounded next phase plan until is_final_phase: true.


Dry Run

Any command containing write operations shows a full plan preview before executing. --dry-run takes this further: read-only steps run for real (so the brain gets actual filesystem data to plan against), write steps are shown but never executed.

Dry run  ·  Phase 1 of 2
────────────────────────────────────────
  [1] read_directory            path=/Users/dev/Downloads
  [2] create_folder             path=/Users/dev/Downloads/Images
  [3] move_file                 source=photo.jpg  destination=.../Images/photo.jpg
  [4] move_file                 source=wallpaper.png  destination=.../Images/wallpaper.png

⚠  Dry run — no changes made. Remove --dry-run to execute.

Install

pip install sentrify

Requires Python 3.11+. The sentrify command is available immediately after install.

To point at a local brain instance during development:

export SENTRIFY_BRAIN_URL=http://localhost:8000
sentrify "list files in downloads"

Project Structure

sentrify/
├── cli.py                      Entry point — Click group, run + auth commands
├── config.py                   Brain URL, API key header, timeout constants
├── models.py                   Pydantic schemas — IntentResponse · ExecutionPlan · PhaseResult
├── output.py                   Rich terminal rendering — steps, results, plan preview
├── auth/
│   ├── store.py                API key persistence via platformdirs + TOML
│   └── commands.py             sentrify auth login / logout / status
├── client/
│   └── brain.py                Async HTTP client — /v1/intent · /v1/sessions/{id}/results
└── executor/
    ├── runner.py               Execution loop — phases, dry-run, confirmation, results
    └── capabilities/
        ├── base.py             BaseCapability — readonly + requires_confirmation flags
        ├── files.py            read_directory · read_file · write_file · move · copy · rename · remove · create_folder · get_file_info
        ├── search.py           find_files · search_in_files
        └── shell.py            run_command

Phase 2

When the Sentrify Mac agent ships — a persistent headless background process — the CLI becomes a pure input channel. Commands fire to the brain and return immediately. The background agent executes the plan independently, even after the terminal is closed.


Proprietary and confidential. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sentrify-0.1.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sentrify-0.1.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file sentrify-0.1.0.tar.gz.

File metadata

  • Download URL: sentrify-0.1.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for sentrify-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8aa645dbce3ed3c8eceb114ba1c855f35ee39e9fe42e8366d7451eb1d5d32dcd
MD5 ce5ce3b514fc3d4d03b2af0757c8c6cd
BLAKE2b-256 9723e73319b190050ed1c40714e50d2349433e4e15867bb527555c32c7d54e68

See more details on using hashes here.

File details

Details for the file sentrify-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sentrify-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for sentrify-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a96a62665a944f1e516b1163eabf9b72524d33d67d17c8a5ad6fbdff877e5928
MD5 fee1d703f158818915b4cf459d42d02f
BLAKE2b-256 f76606c75516c18a7d211e56d2e9574e679a2a5961df0429c2e4f34714875c36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page