indigo-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1030 -0
  2. package/main.js +4557 -0
  3. package/package.json +43 -0
package/README.md ADDED
@@ -0,0 +1,1030 @@
1
+ # Indigo CLI
2
+
3
+ Terminal-based access to Indigo for power users. Authenticate, browse signals, manage meetings, and chat with Indigo AI without launching the Electron app.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Installation](#installation)
8
+ - [Quick Start](#quick-start)
9
+ - [Commands](#commands)
10
+ - [auth](#auth---authentication-commands)
11
+ - [account](#account---account-management)
12
+ - [signals](#signals---signal-management)
13
+ - [chat](#chat---chat-with-indigo-ai)
14
+ - [setup](#setup---configuration-and-setup)
15
+ - [meetings](#meetings---meeting-management)
16
+ - [Exit Codes](#exit-codes)
17
+ - [Configuration](#configuration)
18
+ - [Output Formats](#output-formats)
19
+ - [Troubleshooting](#troubleshooting)
20
+ - [Common Workflows](#common-workflows)
21
+
22
+ ## Installation
23
+
24
+ ### npm (recommended)
25
+
26
+ ```bash
27
+ npm install -g @anthropic/indigo-cli
28
+ ```
29
+
30
+ ### Standalone binaries (no Node.js required)
31
+
32
+ Download the binary for your platform from [GitHub Releases](https://github.com/anthropics/indigo-nx/releases):
33
+
34
+ | Platform | Download |
35
+ |----------|----------|
36
+ | macOS (Apple Silicon) | `indigo-macos-arm64` |
37
+ | macOS (Intel) | `indigo-macos-x64` |
38
+ | Linux (x64) | `indigo-linux-x64` |
39
+ | Windows (x64) | `indigo-win-x64.exe` |
40
+
41
+ #### macOS / Linux
42
+
43
+ ```bash
44
+ # Download the binary (example for macOS ARM64)
45
+ curl -L -o indigo https://github.com/anthropics/indigo-nx/releases/latest/download/indigo-macos-arm64
46
+
47
+ # Make it executable
48
+ chmod +x indigo
49
+
50
+ # Move to a directory in your PATH
51
+ sudo mv indigo /usr/local/bin/
52
+
53
+ # Verify installation
54
+ indigo --version
55
+ ```
56
+
57
+ On macOS, you may need to allow the app in System Preferences > Security & Privacy if you see a security warning.
58
+
59
+ #### Windows
60
+
61
+ 1. Download `indigo-win-x64.exe` from the releases page
62
+ 2. Rename to `indigo.exe` (optional)
63
+ 3. Move to a directory in your PATH, or run directly from the download location
64
+
65
+ ```powershell
66
+ # Verify installation
67
+ .\indigo.exe --version
68
+ ```
69
+
70
+ ### From source
71
+
72
+ ```bash
73
+ git clone https://github.com/anthropics/indigo-nx.git
74
+ cd indigo-nx
75
+ pnpm install
76
+ nx run cli:build
77
+ # Binary available at dist/apps/cli/main.js
78
+ ```
79
+
80
+ ## Quick Start
81
+
82
+ ```bash
83
+ # 1. Authenticate (opens browser)
84
+ indigo auth login
85
+
86
+ # 2. Run interactive setup wizard (optional)
87
+ indigo setup
88
+
89
+ # 3. List your signals
90
+ indigo signals list
91
+
92
+ # 4. Start a chat session
93
+ indigo chat start
94
+ ```
95
+
96
+ ## Commands
97
+
98
+ ### auth - Authentication Commands
99
+
100
+ Manage authentication with your Indigo account.
101
+
102
+ #### auth login
103
+
104
+ Authenticate with your Indigo account via browser-based OAuth.
105
+
106
+ **Syntax:**
107
+ ```bash
108
+ indigo auth login [options]
109
+ ```
110
+
111
+ **Options:**
112
+ | Option | Description |
113
+ |--------|-------------|
114
+ | `--force` | Force CLI-specific login even if Electron app credentials exist |
115
+ | `--json` | Output as JSON for scripting |
116
+
117
+ **Examples:**
118
+ ```bash
119
+ # Standard login (opens browser)
120
+ indigo auth login
121
+
122
+ # Force new credentials even if using desktop app
123
+ indigo auth login --force
124
+
125
+ # Get login status as JSON
126
+ indigo auth login --json
127
+ ```
128
+
129
+ **Notes:**
130
+ - If you're already logged into the Indigo desktop app, the CLI will automatically use those credentials
131
+ - Use `--force` to create CLI-specific credentials separate from the desktop app
132
+
133
+ ---
134
+
135
+ #### auth logout
136
+
137
+ Log out and clear stored credentials.
138
+
139
+ **Syntax:**
140
+ ```bash
141
+ indigo auth logout [options]
142
+ ```
143
+
144
+ **Options:**
145
+ | Option | Description |
146
+ |--------|-------------|
147
+ | `--json` | Output as JSON for scripting |
148
+
149
+ **Examples:**
150
+ ```bash
151
+ # Log out
152
+ indigo auth logout
153
+
154
+ # Log out with JSON output
155
+ indigo auth logout --json
156
+ ```
157
+
158
+ ---
159
+
160
+ #### auth status
161
+
162
+ Display current authentication status including user info and token expiry.
163
+
164
+ **Syntax:**
165
+ ```bash
166
+ indigo auth status [options]
167
+ ```
168
+
169
+ **Options:**
170
+ | Option | Description |
171
+ |--------|-------------|
172
+ | `--json` | Output as JSON for scripting |
173
+
174
+ **Examples:**
175
+ ```bash
176
+ # Check authentication status
177
+ indigo auth status
178
+
179
+ # Get detailed status as JSON
180
+ indigo auth status --json
181
+ ```
182
+
183
+ **Output includes:**
184
+ - Login status (logged in / not logged in)
185
+ - User email and ID
186
+ - Token expiry time
187
+ - Credential source (CLI or Electron desktop app)
188
+ - Storage method (system keychain or encrypted file)
189
+
190
+ ---
191
+
192
+ ### account - Account Management
193
+
194
+ Manage your Indigo account.
195
+
196
+ #### account create
197
+
198
+ Create a new Indigo account via browser-based signup.
199
+
200
+ **Syntax:**
201
+ ```bash
202
+ indigo account create [options]
203
+ ```
204
+
205
+ **Options:**
206
+ | Option | Description |
207
+ |--------|-------------|
208
+ | `--json` | Output as JSON for scripting |
209
+ | `-e, --email <email>` | Email address (development/test environments only) |
210
+ | `-p, --password <password>` | Password (development/test environments only) |
211
+
212
+ **Examples:**
213
+ ```bash
214
+ # Create account via browser (standard flow)
215
+ indigo account create
216
+
217
+ # Create account in dev/test environment
218
+ indigo account create --email user@example.com --password mypassword123
219
+ ```
220
+
221
+ **Notes:**
222
+ - The `--email` and `--password` flags are only available in development/test environments
223
+ - In production, account creation always uses the browser-based OAuth flow
224
+ - Password must be at least 8 characters
225
+
226
+ ---
227
+
228
+ #### account info
229
+
230
+ Display information about your current account.
231
+
232
+ **Syntax:**
233
+ ```bash
234
+ indigo account info [options]
235
+ ```
236
+
237
+ **Options:**
238
+ | Option | Description |
239
+ |--------|-------------|
240
+ | `--json` | Output as JSON for scripting |
241
+
242
+ **Examples:**
243
+ ```bash
244
+ # View account info
245
+ indigo account info
246
+
247
+ # Get account info as JSON
248
+ indigo account info --json
249
+ ```
250
+
251
+ **Output includes:**
252
+ - Email address
253
+ - Display name
254
+ - User ID
255
+ - Company (if associated)
256
+ - Credential source
257
+
258
+ ---
259
+
260
+ ### signals - Signal Management
261
+
262
+ Browse and search your Indigo signals. Signals are insights extracted from your meetings, emails, and communications.
263
+
264
+ #### signals list
265
+
266
+ List your recent signals.
267
+
268
+ **Syntax:**
269
+ ```bash
270
+ indigo signals list [options]
271
+ ```
272
+
273
+ **Options:**
274
+ | Option | Description |
275
+ |--------|-------------|
276
+ | `--json` | Output as JSON for scripting |
277
+ | `-n, --limit <number>` | Number of results to show (default: 20) |
278
+ | `-t, --type <type>` | Filter by signal type |
279
+
280
+ **Valid signal types:**
281
+ - `decision` - Decisions made in meetings or communications
282
+ - `action` - Action items identified
283
+ - `accomplishment` - Accomplishments or completed items
284
+ - `key_fact` - Important facts or information
285
+
286
+ **Examples:**
287
+ ```bash
288
+ # List recent signals
289
+ indigo signals list
290
+
291
+ # List 50 signals
292
+ indigo signals list --limit 50
293
+
294
+ # List only decisions
295
+ indigo signals list --type decision
296
+
297
+ # List action items as JSON
298
+ indigo signals list --type action --json
299
+ ```
300
+
301
+ ---
302
+
303
+ #### signals search
304
+
305
+ Search your signals by content.
306
+
307
+ **Syntax:**
308
+ ```bash
309
+ indigo signals search <query> [options]
310
+ ```
311
+
312
+ **Arguments:**
313
+ | Argument | Description |
314
+ |----------|-------------|
315
+ | `query` | Search term (required) |
316
+
317
+ **Options:**
318
+ | Option | Description |
319
+ |--------|-------------|
320
+ | `--json` | Output as JSON for scripting |
321
+ | `-n, --limit <number>` | Number of results to show (default: 20) |
322
+ | `-t, --type <type>` | Filter by signal type |
323
+
324
+ **Examples:**
325
+ ```bash
326
+ # Search for budget-related signals
327
+ indigo signals search "budget"
328
+
329
+ # Search for project decisions
330
+ indigo signals search "project update" --type decision
331
+
332
+ # Search with custom limit
333
+ indigo signals search "quarterly" --limit 10 --json
334
+ ```
335
+
336
+ ---
337
+
338
+ #### signals view
339
+
340
+ View the full details of a specific signal.
341
+
342
+ **Syntax:**
343
+ ```bash
344
+ indigo signals view <id> [options]
345
+ ```
346
+
347
+ **Arguments:**
348
+ | Argument | Description |
349
+ |----------|-------------|
350
+ | `id` | Signal ID (24-character hexadecimal string) |
351
+
352
+ **Options:**
353
+ | Option | Description |
354
+ |--------|-------------|
355
+ | `--json` | Output as JSON for scripting |
356
+
357
+ **Examples:**
358
+ ```bash
359
+ # View a signal by ID
360
+ indigo signals view 507f1f77bcf86cd799439011
361
+
362
+ # View signal as JSON
363
+ indigo signals view 507f1f77bcf86cd799439011 --json
364
+ ```
365
+
366
+ **Output includes:**
367
+ - Signal type and title
368
+ - Source (meeting, email, etc.)
369
+ - Creation and update timestamps
370
+ - Related people, teams, projects
371
+ - Full content and citations
372
+
373
+ ---
374
+
375
+ ### chat - Chat with Indigo AI
376
+
377
+ Start and manage interactive chat sessions with Indigo AI.
378
+
379
+ #### chat start
380
+
381
+ Start a new interactive chat session.
382
+
383
+ **Syntax:**
384
+ ```bash
385
+ indigo chat start [options]
386
+ ```
387
+
388
+ **Options:**
389
+ | Option | Description |
390
+ |--------|-------------|
391
+ | `--json` | Output session info as JSON (non-interactive) |
392
+ | `--no-stream` | Disable streaming, wait for complete responses |
393
+
394
+ **Examples:**
395
+ ```bash
396
+ # Start interactive chat
397
+ indigo chat start
398
+
399
+ # Start chat without streaming
400
+ indigo chat start --no-stream
401
+
402
+ # Get session info as JSON (for scripting)
403
+ indigo chat start --json
404
+ ```
405
+
406
+ **Interactive commands:**
407
+ - Type your message and press Enter to send
408
+ - Type `exit` or `quit` to end the session
409
+ - Press `Ctrl+C` to cancel
410
+
411
+ ---
412
+
413
+ #### chat continue
414
+
415
+ Resume an existing chat session.
416
+
417
+ **Syntax:**
418
+ ```bash
419
+ indigo chat continue <session-id> [options]
420
+ ```
421
+
422
+ **Arguments:**
423
+ | Argument | Description |
424
+ |----------|-------------|
425
+ | `session-id` | Chat session ID (24-character hexadecimal string) |
426
+
427
+ **Options:**
428
+ | Option | Description |
429
+ |--------|-------------|
430
+ | `--json` | Output session info as JSON (non-interactive) |
431
+ | `--no-stream` | Disable streaming, wait for complete responses |
432
+
433
+ **Examples:**
434
+ ```bash
435
+ # Continue a previous session
436
+ indigo chat continue 507f1f77bcf86cd799439011
437
+
438
+ # Continue without streaming
439
+ indigo chat continue 507f1f77bcf86cd799439011 --no-stream
440
+ ```
441
+
442
+ ---
443
+
444
+ #### chat list
445
+
446
+ List your recent chat sessions.
447
+
448
+ **Syntax:**
449
+ ```bash
450
+ indigo chat list [options]
451
+ ```
452
+
453
+ **Options:**
454
+ | Option | Description |
455
+ |--------|-------------|
456
+ | `--json` | Output as JSON for scripting |
457
+ | `-n, --limit <number>` | Number of sessions to show (default: 10) |
458
+
459
+ **Examples:**
460
+ ```bash
461
+ # List recent chat sessions
462
+ indigo chat list
463
+
464
+ # List more sessions
465
+ indigo chat list --limit 20
466
+
467
+ # Get sessions as JSON
468
+ indigo chat list --json
469
+ ```
470
+
471
+ ---
472
+
473
+ ### setup - Configuration and Setup
474
+
475
+ Configure Indigo CLI settings including API keys and calendar integration.
476
+
477
+ #### setup wizard
478
+
479
+ Run the interactive setup wizard to configure all settings.
480
+
481
+ **Syntax:**
482
+ ```bash
483
+ indigo setup [options]
484
+ indigo setup wizard [options]
485
+ ```
486
+
487
+ **Options:**
488
+ | Option | Description |
489
+ |--------|-------------|
490
+ | `--json` | Output current status as JSON (non-interactive) |
491
+
492
+ **Examples:**
493
+ ```bash
494
+ # Run setup wizard
495
+ indigo setup
496
+
497
+ # Check what needs to be configured
498
+ indigo setup --json
499
+ ```
500
+
501
+ **Setup wizard covers:**
502
+ 1. Authentication verification
503
+ 2. API keys configuration (BYOK - Bring Your Own Key)
504
+ 3. Google Calendar connection
505
+
506
+ ---
507
+
508
+ #### setup status
509
+
510
+ Show current configuration status.
511
+
512
+ **Syntax:**
513
+ ```bash
514
+ indigo setup status [options]
515
+ ```
516
+
517
+ **Options:**
518
+ | Option | Description |
519
+ |--------|-------------|
520
+ | `--json` | Output as JSON for scripting |
521
+
522
+ **Examples:**
523
+ ```bash
524
+ # Check setup status
525
+ indigo setup status
526
+
527
+ # Get status as JSON
528
+ indigo setup status --json
529
+ ```
530
+
531
+ **Output includes:**
532
+ - Authentication status
533
+ - Configured API key providers
534
+ - Calendar connection status
535
+
536
+ ---
537
+
538
+ #### setup calendar
539
+
540
+ Connect and manage Google Calendar integration.
541
+
542
+ **Syntax:**
543
+ ```bash
544
+ indigo setup calendar [options]
545
+ ```
546
+
547
+ **Options:**
548
+ | Option | Description |
549
+ |--------|-------------|
550
+ | `--json` | Output as JSON for scripting |
551
+ | `--status` | Show current calendar connection status |
552
+ | `--select` | Select which calendars to sync |
553
+ | `--disconnect` | Disconnect Google Calendar |
554
+
555
+ **Examples:**
556
+ ```bash
557
+ # Connect Google Calendar (opens browser)
558
+ indigo setup calendar
559
+
560
+ # Check calendar connection status
561
+ indigo setup calendar --status
562
+
563
+ # Select calendars to sync
564
+ indigo setup calendar --select
565
+
566
+ # Disconnect calendar
567
+ indigo setup calendar --disconnect
568
+ ```
569
+
570
+ ---
571
+
572
+ #### setup keys
573
+
574
+ Configure API keys for AI model providers (BYOK - Bring Your Own Key).
575
+
576
+ **Syntax:**
577
+ ```bash
578
+ indigo setup keys [options]
579
+ ```
580
+
581
+ **Options:**
582
+ | Option | Description |
583
+ |--------|-------------|
584
+ | `--json` | Output as JSON for scripting |
585
+ | `--list` | List configured API key providers |
586
+ | `-p, --provider <provider>` | Configure a specific provider |
587
+ | `--remove <provider>` | Remove API key for a provider |
588
+
589
+ **Supported providers:**
590
+ | Provider | Description |
591
+ |----------|-------------|
592
+ | `openai` | GPT-4, GPT-4o and other OpenAI models |
593
+ | `anthropic` | Claude models (Claude 3, Claude 3.5, etc.) |
594
+ | `google` | Gemini models |
595
+ | `xai` | Grok models |
596
+
597
+ **Examples:**
598
+ ```bash
599
+ # Interactive setup for all providers
600
+ indigo setup keys
601
+
602
+ # List configured providers
603
+ indigo setup keys --list
604
+
605
+ # Configure OpenAI API key
606
+ indigo setup keys --provider openai
607
+
608
+ # Remove an API key
609
+ indigo setup keys --remove anthropic
610
+
611
+ # Get configuration as JSON
612
+ indigo setup keys --list --json
613
+ ```
614
+
615
+ ---
616
+
617
+ ### meetings - Meeting Management
618
+
619
+ View and search your calendar meetings. Requires Google Calendar to be connected.
620
+
621
+ #### meetings list
622
+
623
+ List your meetings.
624
+
625
+ **Syntax:**
626
+ ```bash
627
+ indigo meetings list [options]
628
+ ```
629
+
630
+ **Options:**
631
+ | Option | Description |
632
+ |--------|-------------|
633
+ | `--json` | Output as JSON for scripting |
634
+ | `-n, --limit <number>` | Number of results to show (default: 20) |
635
+ | `--upcoming` | Show upcoming meetings (default) |
636
+ | `--past` | Show past meetings |
637
+
638
+ **Examples:**
639
+ ```bash
640
+ # List upcoming meetings
641
+ indigo meetings list
642
+
643
+ # List past meetings
644
+ indigo meetings list --past
645
+
646
+ # List more meetings
647
+ indigo meetings list --limit 50 --json
648
+ ```
649
+
650
+ ---
651
+
652
+ #### meetings view
653
+
654
+ View detailed information about a specific meeting.
655
+
656
+ **Syntax:**
657
+ ```bash
658
+ indigo meetings view <id> [options]
659
+ ```
660
+
661
+ **Arguments:**
662
+ | Argument | Description |
663
+ |----------|-------------|
664
+ | `id` | Meeting ID (24-character hexadecimal string) |
665
+
666
+ **Options:**
667
+ | Option | Description |
668
+ |--------|-------------|
669
+ | `--json` | Output as JSON for scripting |
670
+
671
+ **Examples:**
672
+ ```bash
673
+ # View meeting details
674
+ indigo meetings view 507f1f77bcf86cd799439011
675
+
676
+ # Get meeting as JSON
677
+ indigo meetings view 507f1f77bcf86cd799439011 --json
678
+ ```
679
+
680
+ **Output includes:**
681
+ - Meeting title and status
682
+ - Date, time, and duration
683
+ - Meeting URL
684
+ - Participants and their response status
685
+ - Description and summary (if available)
686
+
687
+ ---
688
+
689
+ #### meetings search
690
+
691
+ Search meetings by title, description, or attendee.
692
+
693
+ **Syntax:**
694
+ ```bash
695
+ indigo meetings search <query> [options]
696
+ ```
697
+
698
+ **Arguments:**
699
+ | Argument | Description |
700
+ |----------|-------------|
701
+ | `query` | Search term (required) |
702
+
703
+ **Options:**
704
+ | Option | Description |
705
+ |--------|-------------|
706
+ | `--json` | Output as JSON for scripting |
707
+ | `-n, --limit <number>` | Number of results to show (default: 20) |
708
+ | `--upcoming` | Search only upcoming meetings |
709
+ | `--past` | Search only past meetings |
710
+
711
+ **Examples:**
712
+ ```bash
713
+ # Search all meetings
714
+ indigo meetings search "standup"
715
+
716
+ # Search upcoming meetings only
717
+ indigo meetings search "review" --upcoming
718
+
719
+ # Search past meetings
720
+ indigo meetings search "quarterly" --past --limit 10
721
+ ```
722
+
723
+ ---
724
+
725
+ ## Exit Codes
726
+
727
+ The CLI uses standardized exit codes for scripting and automation:
728
+
729
+ | Code | Name | Description |
730
+ |------|------|-------------|
731
+ | 0 | Success | Command completed successfully |
732
+ | 1 | General Error | An unexpected error occurred |
733
+ | 2 | Authentication Required | User is not authenticated; run `indigo auth login` |
734
+ | 3 | Not Found | Requested resource (signal, meeting, chat) was not found |
735
+ | 4 | Configuration Error | Missing or invalid configuration (e.g., calendar not connected) |
736
+ | 5 | Validation Error | Invalid command arguments or options |
737
+
738
+ **Example usage in scripts:**
739
+ ```bash
740
+ indigo signals list --json > signals.json
741
+ if [ $? -eq 2 ]; then
742
+ echo "Please log in first"
743
+ indigo auth login
744
+ fi
745
+ ```
746
+
747
+ ---
748
+
749
+ ## Configuration
750
+
751
+ ### Environment Variables
752
+
753
+ For chat functionality, the following environment variables must be set:
754
+
755
+ | Variable | Description |
756
+ |----------|-------------|
757
+ | `LANGGRAPH_API_URL` | URL of your LangGraph instance |
758
+ | `LANGSMITH_API_KEY` | Your LangSmith API key |
759
+ | `LANGGRAPH_ASSISTANT_ID` | Your LangGraph assistant ID |
760
+
761
+ **Example:**
762
+ ```bash
763
+ export LANGGRAPH_API_URL="https://your-langgraph-instance.com"
764
+ export LANGSMITH_API_KEY="your-api-key"
765
+ export LANGGRAPH_ASSISTANT_ID="your-assistant-id"
766
+ ```
767
+
768
+ ### Credential Storage
769
+
770
+ The CLI stores credentials securely using one of two methods:
771
+
772
+ 1. **System keychain** (preferred) - Uses the native OS keychain:
773
+ - macOS: Keychain Access
774
+ - Windows: Credential Manager
775
+ - Linux: Secret Service API (GNOME Keyring, KWallet)
776
+
777
+ 2. **Encrypted config file** (fallback) - Used when system keychain is unavailable
778
+
779
+ **Config file location:**
780
+ - macOS/Linux: `~/.config/indigo-cli/`
781
+ - Windows: `%APPDATA%/indigo-cli/`
782
+
783
+ ### Shared Credentials with Desktop App
784
+
785
+ If you have the Indigo desktop app installed and logged in, the CLI will automatically detect and use those credentials. To use separate CLI-specific credentials, run:
786
+
787
+ ```bash
788
+ indigo auth login --force
789
+ ```
790
+
791
+ ---
792
+
793
+ ## Output Formats
794
+
795
+ All data commands support JSON output for scripting and automation.
796
+
797
+ ### Human-readable output (default)
798
+
799
+ ```bash
800
+ indigo signals list
801
+ ```
802
+
803
+ Output is formatted for terminal display with tables, colors, and word wrapping.
804
+
805
+ ### JSON output
806
+
807
+ ```bash
808
+ indigo signals list --json
809
+ ```
810
+
811
+ JSON output follows a consistent schema:
812
+
813
+ **Success response:**
814
+ ```json
815
+ {
816
+ "success": true,
817
+ "data": { ... }
818
+ }
819
+ ```
820
+
821
+ **Error response:**
822
+ ```json
823
+ {
824
+ "success": false,
825
+ "error": {
826
+ "message": "Error description",
827
+ "code": "ERROR_CODE"
828
+ }
829
+ }
830
+ ```
831
+
832
+ ### Piping to jq
833
+
834
+ ```bash
835
+ # Get the first signal's title
836
+ indigo signals list --json | jq '.[0].data.title'
837
+
838
+ # Filter signals by type
839
+ indigo signals list --json | jq '[.[] | select(.insightType == "decision")]'
840
+ ```
841
+
842
+ ---
843
+
844
+ ## Troubleshooting
845
+
846
+ ### "Authentication required" error
847
+
848
+ **Problem:** Commands fail with exit code 2 and "Not authenticated" message.
849
+
850
+ **Solution:**
851
+ ```bash
852
+ # Log in to your account
853
+ indigo auth login
854
+
855
+ # Check authentication status
856
+ indigo auth status
857
+ ```
858
+
859
+ ### Credentials not persisting
860
+
861
+ **Problem:** You need to log in every time you use the CLI.
862
+
863
+ **Solution:**
864
+ 1. Check if keytar (system keychain integration) installed correctly
865
+ 2. If keytar fails, credentials fall back to an encrypted config file
866
+ 3. Verify the config directory exists and is writable:
867
+ ```bash
868
+ ls -la ~/.config/indigo-cli/
869
+ ```
870
+
871
+ ### Chat not working
872
+
873
+ **Problem:** Chat commands fail with configuration errors.
874
+
875
+ **Solution:**
876
+ 1. Verify LangGraph environment variables are set:
877
+ ```bash
878
+ echo $LANGGRAPH_API_URL
879
+ echo $LANGSMITH_API_KEY
880
+ echo $LANGGRAPH_ASSISTANT_ID
881
+ ```
882
+ 2. Ensure all three variables are configured correctly
883
+
884
+ ### Calendar commands failing
885
+
886
+ **Problem:** Meeting commands fail with "Calendar not connected" error.
887
+
888
+ **Solution:**
889
+ ```bash
890
+ # Check calendar connection status
891
+ indigo setup calendar --status
892
+
893
+ # Connect your calendar
894
+ indigo setup calendar
895
+ ```
896
+
897
+ ### "Invalid signal type" error
898
+
899
+ **Problem:** Signal filtering fails with validation error.
900
+
901
+ **Solution:** Use one of the valid signal types:
902
+ - `decision`
903
+ - `action`
904
+ - `accomplishment`
905
+ - `key_fact`
906
+
907
+ ```bash
908
+ indigo signals list --type decision
909
+ ```
910
+
911
+ ### Invalid ID format
912
+
913
+ **Problem:** Commands fail with "Invalid ID format" error.
914
+
915
+ **Solution:** IDs must be 24-character hexadecimal strings (MongoDB ObjectIds).
916
+ ```bash
917
+ # Correct format
918
+ indigo signals view 507f1f77bcf86cd799439011
919
+
920
+ # Get IDs from list commands
921
+ indigo signals list --json | jq '.[0]._id'
922
+ ```
923
+
924
+ ### Browser not opening during login
925
+
926
+ **Problem:** Browser doesn't open automatically for OAuth.
927
+
928
+ **Solution:**
929
+ 1. Copy the URL displayed in the terminal
930
+ 2. Paste it manually into your browser
931
+ 3. Complete the login flow
932
+ 4. Return to the terminal
933
+
934
+ ---
935
+
936
+ ## Common Workflows
937
+
938
+ ### First-time setup
939
+
940
+ ```bash
941
+ # 1. Create account or log in
942
+ indigo auth login
943
+ # or
944
+ indigo account create
945
+
946
+ # 2. Run the setup wizard
947
+ indigo setup
948
+
949
+ # 3. Connect your calendar
950
+ indigo setup calendar
951
+
952
+ # 4. Configure API keys (optional)
953
+ indigo setup keys
954
+
955
+ # 5. Verify everything is configured
956
+ indigo setup status
957
+ ```
958
+
959
+ ### Daily workflow
960
+
961
+ ```bash
962
+ # Check upcoming meetings
963
+ indigo meetings list
964
+
965
+ # Review recent signals
966
+ indigo signals list --limit 10
967
+
968
+ # Start a chat to discuss your day
969
+ indigo chat start
970
+ ```
971
+
972
+ ### Searching for information
973
+
974
+ ```bash
975
+ # Find all decisions about a project
976
+ indigo signals search "Project Alpha" --type decision
977
+
978
+ # Find meetings with a specific person
979
+ indigo meetings search "john@example.com"
980
+
981
+ # Find action items from last month
982
+ indigo signals list --type action --limit 50
983
+ ```
984
+
985
+ ### Scripting and automation
986
+
987
+ ```bash
988
+ #!/bin/bash
989
+
990
+ # Export signals to file
991
+ indigo signals list --json > signals.json
992
+
993
+ # Check if authenticated
994
+ if ! indigo auth status --json | jq -e '.data.isAuthenticated' > /dev/null; then
995
+ echo "Please log in first"
996
+ exit 1
997
+ fi
998
+
999
+ # Get upcoming meetings
1000
+ indigo meetings list --json | jq '[.[] | {title: .meeting_title, time: .start_time}]'
1001
+ ```
1002
+
1003
+ ### Continuing a previous chat
1004
+
1005
+ ```bash
1006
+ # List recent chat sessions
1007
+ indigo chat list
1008
+
1009
+ # Continue a specific session
1010
+ indigo chat continue 507f1f77bcf86cd799439011
1011
+ ```
1012
+
1013
+ ---
1014
+
1015
+ ## Requirements
1016
+
1017
+ **npm installation:**
1018
+ - Node.js 18.0.0 or higher
1019
+
1020
+ **Standalone binaries:**
1021
+ - No runtime dependencies (Node.js is bundled)
1022
+
1023
+ **Optional (all installation methods):**
1024
+ - System keychain access for secure credential storage
1025
+
1026
+ ---
1027
+
1028
+ ## License
1029
+
1030
+ MIT