Files
cassady/docs/platforms.md
T
owen 7c84a54e6a
CI / Build (push) Waiting to run
CI / Test (push) Waiting to run
Add self-update command
2026-06-25 07:50:05 -05:00

74 lines
2.6 KiB
Markdown

# Platform notes
Cassady is a terminal CLI. Most behavior is shared across platforms, but environment-variable syntax, paths, and terminal behavior differ.
## macOS and Linux
Set an API key for the current shell:
```sh
export OPENAI_API_KEY=...
cass check
cass
```
Use normal POSIX paths:
```sh
cass --cwd /Users/alex/project
cass --cwd /home/alex/project
```
Shell tools run through `sh -c` from the launch cwd.
## Windows
Release builds include a Windows x86_64 binary. Use PowerShell syntax for environment variables:
```powershell
$env:OPENAI_API_KEY = "..."
cass check
cass
```
Example path usage:
```powershell
cass --cwd C:\Users\alex\project
```
Current docs and examples are primarily terminal-CLI oriented. Deeper Windows polish for terminal behavior, path handling, shell behavior, filesystem edge cases, and release usability is planned for a later release. Avoid assuming every Windows path or shell edge case is polished in the current version.
## Config location
Cassady currently stores config under the home directory at:
```text
~/.cass
```
That directory contains `config.json`, `providers.json`, `models.json`, `global.md`, `conversations/`, and installed bundled docs.
## Non-interactive contexts
- `cass check` is suitable for scripts and CI because it prints text and exits non-zero on errors.
- `cass update --check` and `cass update --dry-run` are suitable for scripts that only need release status or an install plan.
- `cass update --yes` accepts default prompts for scripted updates, but still fails instead of escalating privileges when the install directory is not writable.
- `cass setup` requires an interactive terminal.
- `cass` chat is an interactive terminal UI.
## Release artifacts and updates
When using release archives, each archive contains both `cass` and `cassady`. Put the extracted binaries somewhere on your `PATH` or run them by explicit path.
`cass update` can update release-archive installs from official GitHub releases. It supports the same prebuilt targets as the release process:
- macOS Apple Silicon: `aarch64-apple-darwin`
- Linux x86_64: `x86_64-unknown-linux-gnu`
- Linux ARM64: `aarch64-unknown-linux-gnu`
- Windows x86_64: `x86_64-pc-windows-gnu`
On macOS and Linux, the updater replaces same-directory `cass` and `cassady` binaries with backups and rollback on failure. On Windows, replacing a running `.exe` is more constrained; if automatic replacement is unavailable, Cassady leaves staged files in place and reports manual copy guidance instead of partially modifying the install.
If Cassady is installed through a package manager in the future, prefer that package manager's update command instead of `cass update`.