almanac-cli
v1.0.0
Published
CLI for fetching data from the internal Almanac system
Readme
Almanac CLI
CLI for fetching data from the internal Almanac system (almanac.e-bk.m086).
Prerequisites
- Node.js >= 18
- VPN/internal network access to
almanac.e-bk.m086
Installation
pnpm install
pnpm run buildUsage
Configuration
Set credentials via environment variables:
export ALMANAC_USER="your_username"
export ALMANAC_PASSWORD="your_password"
export ALMANAC_BASE_URL="https://almanac.e-bk.m086" # optional, default
export ALMANAC_LANG="de" # optional, defaultOr use command-line options -u/-p for login.
Commands
# Login (saves session to ~/.almanac/cookies.json)
almanac login -u USERNAME -p PASSWORD
# Search for fields
almanac search ANPASCHL
almanac search "search term" --json
# Fetch field detail
almanac field ANPASCHL
almanac field ANPASCHL --json --links
# Logout (clears cookies)
almanac logoutRunning
From the package directory:
node dist/cli.js --helpOr link globally: pnpm link --global (from packages/almanac-cli).
Architecture
- HTTP client (
lib/client.ts): Session-based auth with cookie persistence via tough-cookie - Auth (
lib/auth.ts): Login/logout against MetaDirLoginServlet and CBSLogoutServlet - Parser (
lib/parser.ts): HTML parsing with cheerio for search results and field pages
Security
- Credentials from env vars or config only—never hardcoded
- Cookies stored in
~/.almanac/with restricted permissions - HAR files (containing sensitive data) are gitignored
