This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<img src="./assets/readme/cover.svg" width="100%" alt="BeatAPI CLI — official command-line interface and typed client for asynchronous and realtime AI video workflows">
`auth login` reads the API key through hidden terminal input, validates it with
`GET /v1/usage`, and saves it in the operating system credential manager.
`GET /v1/usage`, and stores it in the operating-system credential manager. The
CLI does not accept API keys as command-line arguments and never prints them.
For CI, containers, or short-lived shells:
For CI, containers, and short-lived shells, use an environment variable instead:
```bash
export BEATAPI_API_KEY="sk_your_key"
beatapi auth status
```
Environment credentials take precedence over a saved credential. The CLI does
not accept API keys as command-line arguments and never prints the key.
Environment credentials take precedence over a saved credential.
## One contract, two execution paths
<p align="center">
<img src="./assets/readme/workflow.svg" width="100%" alt="BeatAPI developer workflow showing asynchronous tasks from create to hosted media and realtime sessions from a trusted server to a browser SDK">
</p>
## Five-minute workflow
The asynchronous path returns a task immediately and lets callers poll for a
terminal state. The Realtime path creates a short-lived browser session from a
trusted server and exposes only its one-time `client_secret` to the browser SDK.
Use `beatapi --help` for the installed summary. `--json` remains an alias for
`--file` on JSON-input commands.
## Security model
## Security defaults
- API keys are read from `BEATAPI_API_KEY` or an OS credential manager.
- macOS forces the native Keychain backend, Windows uses Credential Manager,
and Linux uses Secret Service.
- Unsupported systems fail closed and instruct the user to use the environment
variable; the CLI does not fall back to plaintext or file-based storage.
- API keys must never be committed, placed in JSON input files, pasted into
issue reports, or passed as command arguments.
- Webhook signing secrets are returned once by the API and should be stored
with the same care as an API key.
- Realtime `client_secret` values are returned only on create. Treat terminal
output and CI logs containing them as sensitive, and close unused sessions.
- API keys are read from `BEATAPI_API_KEY` or an operating-system credential manager.
- macOS uses Keychain, Windows uses Credential Manager, and Linux uses Secret Service.
- Unsupported systems fail closed and instruct users to provide an environment variable; there is no plaintext fallback.
- API keys must not be committed, placed in JSON inputs, pasted into issues, or passed as command arguments.
- Webhook creation stores the one-time signing secret in the BeatAPI configuration directory with file mode `0600`; command output returns `secret_file`, not the secret.
- Realtime `client_secret` values are returned only on create. Treat terminal output and CI logs containing them as sensitive, and close unused sessions.
See [SECURITY.md](./SECURITY.md) for reporting instructions.
Set `BEATAPI_CONFIG_DIR` when a container or automation environment needs a
custom secure location. See [SECURITY.md](./SECURITY.md) for reporting guidance.
## Contract and development
Expand All
@@ -193,8 +234,8 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) before changing behavior.
GitHub Actions verifies every pull request. Publishing is triggered by a GitHub
release or manually through the release workflow after the repository
environment contains an `NPM_TOKEN` secret. The workflow skips package
versions that already exist, so a partial release can be rerun safely.
environment contains an `NPM_TOKEN` secret. The workflow skips package versions
that already exist, so a partial release can be rerun safely.
Release steps and ownership prerequisites are documented in
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add unified generation and Effect commands #4
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
Add unified generation and Effect commands #4
Filter by extension
Viewed files
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.