Skip to main content

Sentrify — terminal input channel for the Sentrify AI system

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.2.tar.gz (14.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.2-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sentrify-0.1.2.tar.gz
  • Upload date:
  • Size: 14.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.2.tar.gz
Algorithm Hash digest
SHA256 6da43c5dd51e93fa509da60f303686c3f1a19abae4948c0ed030ed64dceebbc8
MD5 ffd3e32bdd3561200834d28aa6f42ae2
BLAKE2b-256 58b8b5b11b745c51dedb45fa46b95d793b1ff1636e5cb7ad1b6de50c2035216f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sentrify-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 14.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8c7f0e1cfde651b168482d8e481fb0a4d0e7c35a222b9bd3dbffb6850c2067f4
MD5 0820a760f42d87ae037bd5d252517cf3
BLAKE2b-256 c9d14eb548c5e1e350b2404ab2792aa0e24b11903187b184154966315217bc21

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