# Ahmadawais Ramadan CLI Ramadan CLI

> Ramadan CLI Agent Skill

- Skill: `tomevault-io/ahmadawais-ramadan-cli-ramadan-cli` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/ahmadawais-ramadan-cli-ramadan-cli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/ahmadawais-ramadan-cli-ramadan-cli/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/ahmadawais-ramadan-cli-ramadan-cli

---

# Ramadan CLI Agent Skill

Spec reference: `skills/spec.md`

## Goal

Run, validate, and debug `ramadan-cli` safely and reproducibly.

## What This CLI Is

`ramadan-cli` is a Ramadan-first CLI that shows:

- Sehar (`Fajr`) and Iftar (`Maghrib`) times
- today view, full month (`-a`), and specific roza (`-n`)
- first-run setup with saved config (city/country/method/school/timezone)

Primary user mode:

- Human-first interactive defaults
- Script-friendly deterministic modes via flags (`--json`, `--plain`, `--status`, `config`)

Command surface:

```bash
ramadan-cli [city] [options]
ramadan-cli reset
ramadan-cli config [options]
```

There is no `today` subcommand. `ramadan-cli` default run is the today view.

## Basics Usage

```bash
ramadan-cli
ramadan-cli sf
ramadan-cli -a
ramadan-cli -n 10
ramadan-cli -s
ramadan-cli -s --city Lahore
ramadan-cli reset
ramadan-cli config --show
```

Alias support:

- `roza` (same CLI)
- `sf` city alias resolves to `San Francisco`

First run notes:

- Interactive setup appears on first run in TTY mode.
- `--json` skips interactive setup by design.
- One-off city input does not overwrite saved default location.

Non-interactive config:

```bash
ramadan-cli config --city "San Francisco" --country "United States" --latitude 37.7749 --longitude -122.4194 --method 2 --school 0 --timezone "America/Los_Angeles"
ramadan-cli config --show
ramadan-cli config --clear
```

First roza override controls:

```bash
ramadan-cli --first-roza-date 2026-02-18
ramadan-cli --clear-first-roza-date
```

## Canonical Run Strategy

Prefer running the CLI command directly:

```bash
ramadan-cli --help
ramadan-cli
ramadan-cli sf -a
ramadan-cli -n 10
ramadan-cli reset
```

Use `roza` as an alias where desired.
Use `npx ramadan-cli` when testing package-exec behavior.
Use `node dist/cli.js` only as a local fallback during development/debugging.

## I/O and Exit Contract

- `stdout`: main data output (table/plain/json), version output
- `stderr`: runtime failures and diagnostics
- `--json`: output JSON only to `stdout` on success
- `--json` failure payload on `stderr`: `{"ok":false,"error":{"code":"...","message":"..."}}`
- Exit code `0`: success
- Exit code `1`: runtime/API/validation failure
- Usage parse failures follow Commander defaults

## Isolated Config Runs (Recommended for Agents)

Always isolate config in automation to avoid polluting user/global state:

```bash
TMP_CFG="/tmp/ramadan-cli-agent"
mkdir -p "$TMP_CFG"
RAMADAN_CLI_CONFIG_DIR="$TMP_CFG" ramadan-cli --help
RAMADAN_CLI_CONFIG_DIR="$TMP_CFG" ramadan-cli sf
```

Reset isolated state:

```bash
RAMADAN_CLI_CONFIG_DIR="$TMP_CFG" ramadan-cli reset
```

## First-Run Setup Testing

Interactive setup requires TTY.

Manual TTY check:

```bash
RAMADAN_CLI_CONFIG_DIR="$TMP_CFG" ramadan-cli
```

Expected:

- Setup intro appears.
- Prompts for city/country/method/school/timezone.

## Behavior Checks

### Default location persistence

1. Run without city and complete setup.
2. Run with one-off city (`ramadan-cli sf`).
3. Run without city again.
4. Confirm default remains saved geodata/setup location (city query is one-off).

### Roza modes

- `ramadan-cli` (today/default)
- `ramadan-cli -a` (all days)
- `ramadan-cli -n 10` (specific roza)
- `ramadan-cli --first-roza-date 2026-02-19`
- `ramadan-cli --clear-first-roza-date`

### Output modes

- `ramadan-cli sf --json`
- `ramadan-cli sf --plain`
- `ramadan-cli sf -a` (includes `← current` / `← next` row annotations)
- `ramadan-cli -s` (single line: `Iftar in 2h 30m` or `Sehar in 8h 15m`)
- `ramadan-cli -s --city Lahore` (status with one-off city)

### Non-interactive readiness

- `ramadan-cli config --show`
- `ramadan-cli config --clear`
- `ramadan-cli config --method 2 --school 0`
- `ramadan-cli --clear-first-roza-date`
- `ramadan-cli -s` (always non-interactive; silent failure)

---
> Source: [ahmadawais/ramadan-cli](https://github.com/ahmadawais/ramadan-cli) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-24 -->

