返回技能库

在 macOS 终端录制屏幕、麦克风或摄像头

macOS 命令行工具,可从终端录制麦克风音频、屏幕视频或截屏,以及相机视频或照片,并能够列出设备与控制输出。

作者:atacan · 最新版本:0.2.0

收藏:5 · 下载:1k

说明文档

# record CLI

A macOS command-line tool for recording audio, screen, and camera output. Designed for both human users and AI agents operating in a terminal.

Output file paths are printed to **stdout**. Status messages go to **stderr**, making the tool pipeline-friendly.

## IMPORTANT: User Consent Required

**Always ask the user for explicit permission before running any recording command.** Recording audio (microphone), screen, or camera captures sensitive data and may be unexpected. Before executing `record audio`, `record screen`, or `record camera`, confirm with the user that they intend to record, what will be captured, and the duration. Listing devices (`--list-devices`, `--list-displays`, `--list-windows`, `--list-cameras`) and taking screenshots (`--screenshot`) are less intrusive but should still be confirmed if not explicitly requested.

## Installation

```bash
brew install atacan/tap/record
```

## Quick Reference

```bash
# Audio
record audio --duration 10                    # Record 10s of audio
record audio --duration 5 --json              # JSON output with file path

# Screen
record screen --duration 5                    # Record screen for 5s
record screen --screenshot                    # Take a screenshot
record screen --screenshot --output /tmp/s.png

# Camera
record camera --duration 5                    # Record webcam for 5s
record camera --photo                         # Take a photo
```

## Subcommands

| Subcommand | Purpose |
|---|---|
| `record audio` | Record from microphone |
| `record screen` | Record screen video or take a screenshot |
| `record camera` | Record from webcam or take a photo |

Each subcommand has its own `--help` flag with full option details.

## Key Patterns for AI Agents

### Get the output file path

The tool prints the output file path to stdout. Capture it:

```bash
FILE=$(record audio --duration 5)
echo "Recorded to: $FILE"
```

### Use --json for structured output

All subcommands support `--json` to emit machine-readable JSON to stdout:

```bash
record audio --duration 5 --json
```

### Use --duration for non-interactive recording

Without `--duration`, the tool waits for a keypress to stop (requires a real TTY). AI agents should always pass `--duration <seconds>` to ensure the command terminates.

### List available devices

```bash
record audio --list-devices
record screen --list-displays
record screen --list-windows
record camera --list-cameras
```

Add `--json` for structured output.

### Control output location

```bash
record audio --duration 5 --output /tmp/recording.m4a
record screen --screenshot --output /tmp/screen.png --overwrite
```

Without `--output`, files are saved to a temporary directory.

### Screen recording with audio

```bash
record screen --duration 10 --audio system    # system audio only
record screen --duration 10 --audio mic       # microphone only
record screen --duration 10 --audio both      # system + mic
```

### Capture a specific window or display

```bash
record screen --screenshot --window "Safari"
record screen --duration 5 --display primary
```

## macOS Permissions

The terminal app (Terminal, iTerm2, etc.) must have the relevant permission enabled in **System Settings > Privacy & Security**:

- **Microphone** - for `record audio` and `record camera --audio`
- **Screen Recording** - for `record screen`
- **Camera** - for `record camera`

## Troubleshooting

If a command fails or behaves unexpectedly, run:

```bash
record <subcommand> --help
```

The `--help` output always reflects the installed version and is the authoritative reference.

## Detailed Command References

For full option listings and advanced usage:

- **Audio**: See [references/audio.md](references/audio.md)
- **Screen**: See [references/screen.md](references/screen.md)
- **Camera**: See [references/camera.md](references/camera.md)