# Use SmallForce CLI JSON output in agents and scripts

Commands print human-readable text by default. Add `--json` when an agent or script needs stable machine-readable output:

```bash
smallforce org get --json
smallforce social accounts list --json
smallforce app diagnostics --days 7 --json
```

## Reliable automation rules

- Parse the JSON envelope instead of terminal prose.
- Discover organization-owned IDs from list, search, or get commands.
- Never invent provider IDs, SmallForce IDs, event slugs, or tool slugs.
- Read the leaf command’s current `--help` before a mutation.
- Build structured inputs from schemas returned by discovery commands.
- Use `--input-file -` when a supported command should receive large or sensitive JSON through stdin.
- Validate social posts and advertising campaigns before creation when validation is available.
- Use idempotency controls when retrying could create duplicates.
- Inspect the returned next step and terminal status rather than assuming asynchronous work succeeded.

The generated [command reference](/docs/cli/commands) includes every current command and its complete help text for SmallForce CLI 0.1.6.
