Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .github/screenshot.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 21 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,55 @@
# NBTCA Prompt

Terminal client for NBTCA events, documentation, status and personal timetables.
Club events, the school calendar, your campus timetable, and the NBTCA knowledge
base in one terminal app. What you have loaded stays readable offline.

[![npm version](https://img.shields.io/npm/v/@nbtca/prompt)](https://www.npmjs.com/package/@nbtca/prompt)
[![License](https://img.shields.io/npm/l/@nbtca/prompt)](LICENSE)

## Requirements

- Node.js 20.12 or newer
![The Events tab: the next event with a countdown, upcoming events, and browse options](.github/screenshot.webp)

## Install

Requires Node.js 20.12 or newer.

```bash
npm install --global @nbtca/prompt
nbtca
```

Run a command without installing:

```bash
npx @nbtca/prompt --help
```
Or try it without installing: `npx @nbtca/prompt`.

## Interactive mode

Run `nbtca` with no arguments to open the full-screen client. Press `1`–`5` or
`Tab` to switch tabs, and `?` to list every key.
`nbtca` opens a full-screen client. Press `1`–`5` or `Tab` to switch tabs, and
`?` to list every key.

- **Home**: today's classes and the next club events.
- **Schedule**: the current term, week, and next break from the school
calendar. Log in to the campus system to see your timetable and export it as
an `.ics` file.
- **Events**: the next event with a countdown, plus week, month, search,
- **Schedule**: the current term, week, and next break. Log in to the campus
system to see your timetable and export it to any calendar app as `.ics`.
- **Events**: a countdown to the next event, plus week and month views, search,
history, and a one-year activity heatmap.
- **Docs**: the NBTCA knowledge base, readable and searchable in the terminal.
It is cached locally and served from a mirror when GitHub is unreachable.
- **Settings**: language, icon and color modes, and version info.

Events, docs, and the school calendar stay readable offline from the last
successful fetch.
- **Docs**: read and search the knowledge base. It works even when GitHub is
unreachable.
- **Settings**: language, icons, and colors.

## Commands

```text
nbtca events [--today|--week|--month] [--search=<q>] [--next=<n>] [--json]
nbtca events --heatmap
nbtca events [--today|--week|--month] [--search=<q>] [--json]
nbtca schedule login|terms|export|logout
nbtca status [--watch]
nbtca docs
nbtca status [--watch] [--json]
nbtca schedule login
nbtca schedule status
nbtca schedule terms
nbtca schedule export --term=2026:3 --week-one=YYYY-MM-DD [--output=<path>]
nbtca schedule logout
nbtca website|github|roadmap|repair [--open]
nbtca theme icon auto|ascii|unicode
nbtca theme color auto|on|off
nbtca theme reset
nbtca lang zh|en
nbtca update
```

`nbtca --help` lists every flag. Use `--plain` for stable output without color
and `--no-logo` to skip the startup logo. `schedule export --one-shot` avoids
reading or saving a campus session.
`nbtca --help` lists every command and flag. Add `--plain` for output without
color.

Prompt never stores passwords. Persisted sessions contain only a masked account
hint and a CookieJar, protected with user-only permissions on POSIX systems.
Treat exported calendars and session files as private data. See [SECURITY.md](SECURITY.md).
Prompt never stores your password. A saved campus session gets user-only file
permissions. See [SECURITY.md](SECURITY.md).

## Development

Expand All @@ -75,9 +58,6 @@ npm ci
npm run check
```

`check` runs formatting, lint, full TypeScript validation, tests, build, package
consumer checks and dependency audit.

## License

MIT
Loading