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
4018go 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
28087This 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
29691MIT
0 commit comments