Getting started¶
This tutorial gets you from a fresh install to a useful carrier workflow.
Before you start¶
You need:
- a terminal on Linux, macOS, or Windows PowerShell
- either the installer script or Go installed locally
- write access to your user config and data directories
Run this after install:
doctor checks config, data directories, notification tooling, shell support, and log storage. Fix anything marked error before using carrier in scripts.
What carrier is¶
carrier records command executions on your machine. It captures:
- command and arguments
- working directory
- start and finish time
- duration
- exit code
- stdout and stderr logs
- Git root, branch, commit, and dirty state
It is most useful for test runs, builds, migrations, deploy commands, long Docker tasks, and debugging sessions.
What carrier is not¶
carrier is not a hosted service, terminal replacement, shell history replacement, or CI system.
Note
Everything is local. Metadata is stored in SQLite, and output logs are stored as files under your local data directory.
Install carrier¶
Specific versions and Go installs are covered in Installation.
Verify:
Add a short alias¶
Most examples use:
Add that to ~/.zshrc or ~/.bashrc, then reload your shell:
Use source ~/.bashrc if you use bash.
First five minutes checklist¶
- Install
carrier. - Run
carrier doctor. - Record one command with
carrier run <command...>. - Inspect it with
carrier lastandcarrier show <run-id>. - Add
alias c='carrier'once you are comfortable with the command.
The run ID appears in last, history, failed, running, and most JSON output. Use that ID with show, tail, export, label, rerun, and clean previews.
Record your first command¶
Run a simple command:
You should see normal terminal output. carrier records metadata and saves logs.
Show latest run:
Inspect full details:
If your first run ID is not 1, use ID shown by last.
Record a command that fails¶
Run:
The final echo $? should print 7. carrier run preserves child exit code.
List failed runs:
Search output¶
Search command text, cwd, stdout, stderr, and terminal logs:
Export a run¶
Export run details as Markdown:
This is useful when sharing a failure with teammates or adding context to an issue.
Rerun a command¶
Run again from original working directory:
This creates a new run record. It does not overwrite the old run.
Clean old runs safely¶
Preview deletion:
Actually delete:
Browse runs interactively¶
Use the full-screen browser when you want to scan recent runs and preview output without remembering IDs:
Inside the browser you can move through runs, filter by command/status/cwd/label, label important runs, delete old runs, and choose a run to rerun. Reruns start after the browser exits so the command runs in your normal terminal.
Shell sessions (alpha)¶
carrier shell starts a tracked shell where every command is recorded automatically and grouped under a session. Label it so you can find it later:
Inside the shell, run commands normally. Exit when done. Then review:
Use carrier attach to re-open a session from a different terminal:
Shell mode is alpha and best-effort for zsh/bash. See Shell mode for details.
Next steps¶
- Read First run tutorial for a realistic build/test example.
- Read Commands for full command coverage.
- Read Shell mode to learn about sessions and
carrier attach. - Read Configuration reference before changing storage, redaction, or notifications.