magnit-vms-cli-non-interactive
3
总安装量
3
周安装量
#57596
全站排名
安装命令
npx skills add https://github.com/ihildy/magnit-vms-cli --skill magnit-vms-cli-non-interactive
Agent 安装分布
amp
3
gemini-cli
3
github-copilot
3
codex
3
kimi-cli
3
opencode
3
Skill 文档
Magnit VMS CLI Non-Interactive
Overview
Execute magnit commands with explicit flags so the run is deterministic, scriptable, and prompt-free.
Prefer --json, --yes, --engagement, and --password-stdin where needed to avoid interactive input.
Non-Interactive Workflow
- Resolve executable:
- Prefer
./magnitif present in the repo root. - If missing, run
go build ./cmd/magnitfirst.
- Authenticate non-interactively:
- Run
./magnit auth login --username <email> --password '<password>'. - Alternative for complex passwords:
printf '%s' '<password>' | ./magnit auth login --username <email> --password-stdin.
- Verify authentication:
- Run
./magnit auth status --json. - Proceed only when
"authenticated": true.
- Configure defaults (optional but recommended):
- Set engagement once:
./magnit config set-default-engagement --id <engagement_id>. - Set timezone once:
./magnit config set-timezone --tz <IANA_TZ>.
- Run logging operations:
- Set day spans (authoritative replace):
./magnit set --date YYYY-MM-DD --span labor:09:00-12:00 --span lunch:12:00-12:30 --span labor:12:30-17:00 --engagement <id> --yes --json - Mark did-not-work day:
./magnit mark-dnw --date YYYY-MM-DD --engagement <id> --yes --json - Read back day state:
./magnit show --date YYYY-MM-DD --engagement <id> --json
- Use dry-run before write when safety is required:
./magnit set ... --dry-run --json./magnit mark-dnw ... --dry-run --json
Command Patterns
Authentication:
./magnit auth login --username "$MAGNIT_USERNAME" --password "$MAGNIT_PASSWORD"
or
printf '%s' "$MAGNIT_PASSWORD" | ./magnit auth login --username "$MAGNIT_USERNAME" --password-stdin
./magnit auth status --json
Set hours for one day:
./magnit set \
--date 2026-02-18 \
--span labor:09:00-12:00 \
--span lunch:12:00-12:30 \
--span labor:12:30-17:00 \
--engagement "$MAGNIT_ENGAGEMENT_ID" \
--yes \
--json
Mark day as did-not-work:
./magnit mark-dnw --date 2026-02-19 --engagement "$MAGNIT_ENGAGEMENT_ID" --yes --json
Verify day:
./magnit show --date 2026-02-18 --engagement "$MAGNIT_ENGAGEMENT_ID" --json
Reliability Rules
- Always pass
--jsonfor machine-readable output. - Always pass
--yesfor non-interactive writes to bypass confirmation prompts. - Always pass
--engagement <id>unless a default engagement is already configured. - Always use
YYYY-MM-DDdates andtype:HH:MM-HH:MMspans. - Treat non-zero exit status as failure.
- Prefer
--password-stdinfor passwords with shell-sensitive characters and to reduce shell-history/process-list exposure:printf '%s' "$MAGNIT_PASSWORD" | ./magnit auth login --username "$MAGNIT_USERNAME" --password-stdin.
Failure Handling
- If auth fails (
authenticated: false), runauth loginagain; for complex passwords prefer--password-stdinover--password. - If a command errors on engagement resolution, pass
--engagement <id>or configure a default. - If span validation fails, fix overlaps/order/format and rerun.
- If uncertain about payload impact, rerun with
--dry-run --json.