Skip to content

Commit 86196e8

Browse files
committed
docs: streamline README for quick onboarding
- Reduce README from 297 to 91 lines - Add two-path getting started (demo vs credentials) - Add link to Nylas dashboard for API credentials - Consolidate TUI section into commands table - Add GPG/encryption docs to INDEX.md - Update INDEX.md structure (13 → 16 command files)
1 parent 2d6726d commit 86196e8

File tree

2 files changed

+46
-245
lines changed

2 files changed

+46
-245
lines changed

README.md

Lines changed: 38 additions & 243 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,7 @@
44
![License](https://img.shields.io/badge/license-MIT-green)
55
![Release](https://img.shields.io/github/v/release/nylas/cli)
66

7-
A unified command-line tool for Nylas API authentication, email management, calendar, contacts, webhooks, timezone utilities, and OTP extraction.
8-
9-
## Features
10-
11-
- **Time Zone Utilities**: ⚡ **Offline** timezone conversion, DST transitions, and meeting time finder (no API required)
12-
- **Timezone-Aware Calendar**: View events in any timezone with `--timezone` flag, auto-detect local timezone, **DST warnings** ✅, natural language time parsing ✅
13-
- **Smart Meeting Finder** ✅: Multi-timezone meeting scheduling with 100-point scoring algorithm (working hours, time quality, cultural considerations)
14-
- **AI-Powered Scheduling** (Planned): Natural language scheduling, predictive patterns, conflict resolution with privacy-first local AI (Ollama) or cloud AI (Claude, OpenAI)
15-
- **Interactive TUI**: k9s-style terminal interface with vim-style commands, Google Calendar-style views, and email compose/reply
16-
- **Email Management**: List, read, send, search, and organize emails with scheduled sending support
17-
- **Calendar Management**: View calendars, list/create/delete events, check availability
18-
- **Contacts Management**: List, view, create, and delete contacts and contact groups
19-
- **Webhook Management**: Create, update, delete, and test webhooks for event notifications
20-
- **Inbound Email**: Receive emails at managed addresses without OAuth (e.g., support@yourapp.nylas.email)
21-
- **Scheduler Management**: Create and manage meeting configurations, booking pages, sessions, and bookings
22-
- **Admin Operations**: Manage applications, connectors, credentials, and grants across your organization
23-
- **Draft Management**: Create, edit, and send drafts
24-
- **Folder Management**: Create, rename, and delete folders/labels
25-
- **Thread Management**: View and manage email conversations
26-
- **OTP Extraction**: Automatically extract one-time passwords from emails
27-
- **Slack Integration**: List channels, read/send messages, search, and manage users
28-
- **Multi-Account Support**: Manage multiple email accounts with grant switching
29-
- **Secure Credential Storage**: Uses system keyring for credentials
7+
Unified CLI for [Nylas API](https://www.nylas.com/) - manage email, calendar, and contacts across providers (Google, Microsoft, IMAP) with a single interface.
308

319
## Installation
3210

@@ -40,257 +18,74 @@ brew install nylas/nylas-cli/nylas
4018
go install github.com/nylas/cli/cmd/nylas@latest
4119
```
4220

43-
**Download Binary:**
44-
45-
Download from [Releases](https://github.com/nylas/cli/releases) and add to your PATH.
46-
47-
**Build from Source:**
48-
```bash
49-
make build
50-
```
51-
52-
## Quick Start
53-
54-
### Timezone Tools (No API Required!)
21+
**Binary:** Download from [Releases](https://github.com/nylas/cli/releases) and add to PATH.
5522

56-
```bash
57-
# Convert time between timezones
58-
nylas timezone convert --from PST --to IST
59-
60-
# Check DST transitions
61-
nylas timezone dst --zone America/New_York --year 2026
62-
63-
# Find meeting times across multiple zones
64-
nylas timezone find-meeting --zones "America/New_York,Europe/London,Asia/Tokyo"
65-
66-
# List all timezones
67-
nylas timezone list --filter America
68-
69-
# Get timezone info
70-
nylas timezone info UTC
71-
```
72-
73-
### Timezone-Aware Calendar
23+
## Getting Started
7424

25+
**Just want to explore?** Try the demo first - no credentials needed:
7526
```bash
76-
# List events in different timezone
77-
nylas calendar events list --timezone America/Los_Angeles
78-
79-
# Show timezone information for events
80-
nylas calendar events list --show-tz
81-
82-
# View specific event in multiple timezones
83-
nylas calendar events show <event-id> --timezone Europe/London
84-
nylas calendar events show <event-id> --timezone Asia/Tokyo
85-
86-
# Automatic DST warnings for events near DST transitions
87-
# ⚠️ "Daylight Saving Time begins in 2 days (clocks spring forward 1 hour)"
88-
# ⛔ "This time will not exist due to Daylight Saving Time (clocks spring forward)"
27+
nylas tui --demo
8928
```
9029

91-
**Features:**
92-
- ✅ Multi-timezone event display with conversion
93-
- ✅ Automatic DST (Daylight Saving Time) warnings
94-
- ✅ Natural language time parsing ready for integration
95-
- 🔄 Timezone locking (planned - Task 1.5)
96-
97-
**[Full Timezone Documentation](docs/commands/timezone.md)**
98-
99-
### AI-Powered Scheduling (Coming Soon)
100-
30+
**Ready to connect your account?** [Get API credentials](https://dashboard.nylas.com/) (free tier available), then:
10131
```bash
102-
# Natural language scheduling (privacy-first with Ollama)
103-
nylas calendar ai schedule "30-min call with john@example.com tomorrow afternoon"
104-
105-
# Find optimal meeting times across timezones
106-
nylas calendar find-time --participants alice@team.com,bob@team.com --duration 1h
107-
108-
# Analyze scheduling patterns
109-
nylas calendar ai analyze --learn-patterns
110-
111-
# Auto-resolve conflicts
112-
nylas calendar ai reschedule <event-id> --reason "Urgent task"
32+
nylas auth config # Enter your API key
33+
nylas auth login # Connect your email provider
34+
nylas email list # You're ready!
11335
```
11436

115-
**[Full AI Documentation](docs/commands/ai.md)**
116-
117-
### Email & Calendar (Requires API)
118-
119-
```bash
120-
# Configure with your Nylas credentials
121-
nylas auth config
122-
123-
# Login with your email provider
124-
nylas auth login
125-
126-
# Launch the interactive TUI
127-
nylas tui
128-
129-
# Or use CLI commands directly
130-
nylas email list
131-
132-
# Send an email (immediately)
133-
nylas email send --to "recipient@example.com" --subject "Hello" --body "Hi there!"
134-
135-
# Send an email (scheduled for 2 hours from now)
136-
nylas email send --to "recipient@example.com" --subject "Reminder" --schedule 2h
137-
138-
# List upcoming calendar events
139-
nylas calendar events list
140-
141-
# Check calendar availability
142-
nylas calendar availability check
143-
144-
# Find optimal meeting time across timezones
145-
nylas calendar find-time --participants alice@example.com,bob@example.com --duration 1h
37+
## Basic Commands
14638

147-
# List contacts
148-
nylas contacts list
39+
| Command | Example |
40+
|---------|---------|
41+
| Email | `nylas email list`, `nylas email send --to user@example.com` |
42+
| Calendar | `nylas calendar events list` |
43+
| Contacts | `nylas contacts list` |
44+
| Webhooks | `nylas webhook list` |
45+
| TUI | `nylas tui` (interactive terminal, vim keys, [9 themes](docs/commands/tui.md)) |
46+
| Web UI | `nylas air` (browser interface) |
14947

150-
# List webhooks
151-
nylas webhook list
48+
**[Full Command Reference →](docs/COMMANDS.md)** | **[All Documentation →](docs/INDEX.md)**
15249

153-
# Get the latest OTP code
154-
nylas otp get
155-
156-
# List scheduler configurations
157-
nylas scheduler configurations list
158-
159-
# List all grants (admin)
160-
nylas admin grants list
161-
162-
# List applications (admin)
163-
nylas admin applications list
164-
```
165-
166-
---
167-
168-
## Commands Overview
169-
170-
| Command | Description | API Required |
171-
|---------|-------------|--------------|
172-
| `nylas timezone` | ⚡ Timezone conversion, DST, meeting finder | No |
173-
| `nylas auth` | Authentication and account management | Yes |
174-
| `nylas email` | Email operations (list, read, send, search) | Yes |
175-
| `nylas calendar` | Calendar and event management | Yes |
176-
| `nylas contacts` | Contact management | Yes |
177-
| `nylas webhook` | Webhook configuration | Yes |
178-
| `nylas inbound` | Inbound email inboxes (managed addresses) | Yes |
179-
| `nylas scheduler` | Scheduler configurations, bookings, and pages | Yes |
180-
| `nylas admin` | Administration (applications, connectors, credentials, grants) | Yes |
181-
| `nylas otp` | OTP code extraction | Yes |
182-
| `nylas tui` | Interactive terminal interface | Yes |
183-
| `nylas ui` | Web-based graphical interface | Yes |
184-
| `nylas doctor` | Diagnostic checks | No |
185-
186-
**[Full Command Reference](docs/COMMANDS.md)**
187-
188-
---
189-
190-
## TUI Highlights
191-
192-
![TUI Demo](docs/images/tui-demo.png)
193-
194-
```bash
195-
nylas tui # Launch TUI at dashboard
196-
nylas tui --demo # Demo mode (no credentials needed)
197-
nylas tui --theme amber # Retro amber CRT theme
198-
```
199-
200-
**Themes:** k9s, amber, green, apple2, vintage, ibm, futuristic, matrix, norton
201-
202-
**Vim-style keys:** `j/k` navigate, `gg/G` first/last, `dd` delete, `:q` quit, `/` search
203-
204-
**[Full TUI Documentation](docs/commands/tui.md)**
205-
206-
---
50+
## Features
20751

208-
## Web UI
52+
- **Email**: list, read, send, search, templates, GPG signing/encryption
53+
- **Calendar**: events, availability, timezone conversion, AI scheduling
54+
- **Contacts**: list, create, groups
55+
- **Webhooks**: create, test, manage
56+
- **Timezone**: ⚡ offline conversion, DST info, meeting finder (no API required)
57+
- **Admin**: applications, connectors, credentials, grants
58+
- **Integrations**: MCP (AI assistants)
59+
- **Interfaces**: CLI, TUI (terminal), Air (web)
20960

210-
Launch a browser-based interface for visual CLI management:
61+
## Timezone Tools (No API Required)
21162

21263
```bash
213-
nylas ui # Start on http://localhost:7363
214-
nylas ui --port 8080 # Custom port
215-
nylas ui --no-browser # Don't auto-open browser
64+
nylas timezone convert --from PST --to IST # Convert time
65+
nylas timezone dst --zone America/New_York # Check DST transitions
66+
nylas timezone find-meeting --zones "NYC,LON" # Find meeting times
21667
```
21768

218-
**Features:** API configuration, account switching, email/calendar/auth commands, ID autocomplete, command history
219-
220-
**Security:** Localhost only, command whitelist, shell injection protection
221-
222-
---
223-
22469
## Configuration
22570

226-
Credentials are stored securely in your system keyring:
227-
- **Linux**: Secret Service (GNOME Keyring, KWallet)
228-
- **macOS**: Keychain
229-
- **Windows**: Windows Credential Manager
230-
231-
Config file location: `~/.config/nylas/config.yaml`
71+
Credentials stored securely in system keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager).
23272

233-
---
234-
235-
## Documentation
236-
237-
| Document | Description |
238-
|----------|-------------|
239-
| [Commands](docs/COMMANDS.md) | CLI command reference with examples |
240-
| [Timezone](docs/commands/timezone.md) | Comprehensive timezone utilities guide |
241-
| [Webhooks](docs/commands/webhooks.md) | Webhook testing and development guide |
242-
| [TUI](docs/commands/tui.md) | Terminal UI themes, keys, customization |
243-
| [Architecture](docs/ARCHITECTURE.md) | Hexagonal architecture overview |
244-
| [Development](docs/DEVELOPMENT.md) | Testing, building, and contributing |
245-
| [Security](docs/security/overview.md) | Security practices and credential handling |
246-
247-
---
73+
Config file: `~/.config/nylas/config.yaml`
24874

24975
## Development
25076

251-
### Quick Start
252-
25377
```bash
254-
make build # Build the CLI binary
255-
make ci # Quick quality checks (fmt, vet, lint, test-unit, test-race, security, vuln)
256-
make ci-full # Complete CI pipeline (all checks + integration tests + cleanup)
78+
make build # Build binary
79+
make ci # Quality checks (fmt, vet, lint, test, security)
80+
make ci-full # Complete CI (quality + integration tests)
25781
```
25882

259-
### Available Targets
260-
261-
| Target | Description | Use When |
262-
|--------|-------------|----------|
263-
| `make ci-full` | **Complete validation** (quality + all tests + cleanup) | Before PRs, releases |
264-
| `make ci` | Quality checks only (no integration tests) | Quick pre-commit check |
265-
| `make build` | Build binary to `./bin/nylas` | Development |
266-
| `make test-unit` | Run unit tests | Fast feedback loop |
267-
| `make test-coverage` | Generate coverage report | Check test coverage |
268-
| `make lint` | Run linter only | Fix linting issues |
269-
| `make clean` | Remove build artifacts | Clean workspace |
270-
| `make help` | Show all available targets | See all options |
271-
272-
**Run `make help` for complete list of targets**
273-
274-
**[Development Guide](docs/DEVELOPMENT.md)**
275-
276-
---
83+
**[Development Guide](docs/DEVELOPMENT.md)** | **[Contributing](CONTRIBUTING.md)**
27784

27885
## API Reference
27986

28087
This CLI uses the [Nylas v3 API](https://developer.nylas.com/docs/api/v3/).
28188

282-
---
283-
284-
## Contributing
285-
286-
1. Fork the repository
287-
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
288-
3. Commit your changes (`git commit -m 'Add amazing feature'`)
289-
4. Push to the branch (`git push origin feature/amazing-feature`)
290-
5. Open a Pull Request
291-
292-
---
293-
29489
## License
29590

29691
MIT

docs/INDEX.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ Quick navigation guide to find the right documentation for your needs.
6363
### Command Guides
6464

6565
- **Email**[commands/email.md](commands/email.md)
66+
- **Email signing (GPG)**[commands/email-signing.md](commands/email-signing.md)
67+
- **Email encryption**[commands/encryption.md](commands/encryption.md)
68+
- **GPG explained**[commands/explain-gpg.md](commands/explain-gpg.md)
6669
- **Calendar**[commands/calendar.md](commands/calendar.md)
6770
- **Contacts**[commands/contacts.md](commands/contacts.md)
6871
- **Webhooks**[commands/webhooks.md](commands/webhooks.md)
@@ -116,11 +119,14 @@ docs/
116119
├── ARCHITECTURE.md # System design
117120
├── DEVELOPMENT.md # Development setup
118121
119-
├── commands/ # Detailed command guides (13 files)
122+
├── commands/ # Detailed command guides (16 files)
120123
│ ├── ai.md # AI features
121124
│ ├── mcp.md # MCP integration
122125
│ ├── calendar.md # Calendar events
123126
│ ├── email.md # Email operations
127+
│ ├── email-signing.md # GPG/PGP email signing
128+
│ ├── encryption.md # Email encryption
129+
│ ├── explain-gpg.md # GPG explained
124130
│ ├── contacts.md # Contact management
125131
│ ├── webhooks.md # Webhook setup
126132
│ ├── inbound.md # Inbound email
@@ -200,4 +206,4 @@ docs/
200206

201207
---
202208

203-
**Last Updated:** January 30, 2026
209+
**Last Updated:** February 4, 2026

0 commit comments

Comments
 (0)