Improve setup skill: better Gmail explanation, use placeholders
- Explain Gmail/GCP prerequisites upfront before asking - Replace hardcoded "Andy" with ASSISTANT_NAME placeholder - Replace hardcoded timestamp with CURRENT_ISO_TIMESTAMP - Add step 3 to ask user for their preferred trigger word - Renumber sections accordingly Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -33,7 +33,16 @@ Wait for the script to output "Successfully authenticated" then continue.
|
|||||||
|
|
||||||
If it says "Already authenticated", skip to the next step.
|
If it says "Already authenticated", skip to the next step.
|
||||||
|
|
||||||
## 3. Register Main Channel
|
## 3. Configure Assistant Name
|
||||||
|
|
||||||
|
Ask the user:
|
||||||
|
> What trigger word do you want to use? (default: `Andy`)
|
||||||
|
>
|
||||||
|
> Messages starting with `@TriggerWord` will be sent to Claude.
|
||||||
|
|
||||||
|
Store their choice - you'll use it when creating the registered_groups.json and when telling them how to test.
|
||||||
|
|
||||||
|
## 4. Register Main Channel
|
||||||
|
|
||||||
Ask the user:
|
Ask the user:
|
||||||
> Do you want to use your **personal chat** (message yourself) or a **WhatsApp group** as your main control channel?
|
> Do you want to use your **personal chat** (message yourself) or a **WhatsApp group** as your main control channel?
|
||||||
@@ -60,19 +69,14 @@ sqlite3 store/messages.db "SELECT DISTINCT chat_jid FROM messages WHERE chat_jid
|
|||||||
sqlite3 store/messages.db "SELECT DISTINCT chat_jid FROM messages WHERE chat_jid LIKE '%@g.us' ORDER BY timestamp DESC LIMIT 5"
|
sqlite3 store/messages.db "SELECT DISTINCT chat_jid FROM messages WHERE chat_jid LIKE '%@g.us' ORDER BY timestamp DESC LIMIT 5"
|
||||||
```
|
```
|
||||||
|
|
||||||
Get the assistant name from environment or default:
|
Create/update `data/registered_groups.json` using the JID from above and the assistant name from step 3:
|
||||||
```bash
|
|
||||||
echo ${ASSISTANT_NAME:-Andy}
|
|
||||||
```
|
|
||||||
|
|
||||||
Create/update `data/registered_groups.json`:
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"THE_JID_HERE": {
|
"JID_HERE": {
|
||||||
"name": "main",
|
"name": "main",
|
||||||
"folder": "main",
|
"folder": "main",
|
||||||
"trigger": "@Andy",
|
"trigger": "@ASSISTANT_NAME",
|
||||||
"added_at": "2026-01-31T12:00:00Z"
|
"added_at": "CURRENT_ISO_TIMESTAMP"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -82,16 +86,25 @@ Ensure the groups folder exists:
|
|||||||
mkdir -p groups/main/logs
|
mkdir -p groups/main/logs
|
||||||
```
|
```
|
||||||
|
|
||||||
## 4. Gmail Authentication (Optional)
|
## 5. Gmail Authentication (Optional)
|
||||||
|
|
||||||
Ask the user:
|
Ask the user:
|
||||||
> Do you want to enable Gmail integration for reading/sending emails?
|
> Do you want to enable Gmail integration for reading/sending emails?
|
||||||
|
>
|
||||||
|
> **Note:** This requires setting up Google Cloud Platform OAuth credentials, which involves:
|
||||||
|
> 1. Creating a GCP project
|
||||||
|
> 2. Enabling the Gmail API
|
||||||
|
> 3. Creating OAuth 2.0 credentials
|
||||||
|
> 4. Downloading a credentials file
|
||||||
|
>
|
||||||
|
> This takes about 5-10 minutes. Skip if you don't need email integration.
|
||||||
|
|
||||||
If yes, they need Google Cloud Platform OAuth credentials first:
|
If yes, guide them through the prerequisites:
|
||||||
1. Create a GCP project at https://console.cloud.google.com
|
1. Go to https://console.cloud.google.com
|
||||||
2. Enable the Gmail API
|
2. Create a new project (or use an existing one)
|
||||||
3. Create OAuth 2.0 credentials (Desktop app)
|
3. Enable the Gmail API (APIs & Services → Enable APIs → search "Gmail API")
|
||||||
4. Download and save to `~/.gmail-mcp/gcp-oauth.keys.json`
|
4. Create OAuth 2.0 credentials (APIs & Services → Credentials → Create Credentials → OAuth client ID → Desktop app)
|
||||||
|
5. Download the JSON file and save to `~/.gmail-mcp/gcp-oauth.keys.json`
|
||||||
|
|
||||||
Then run:
|
Then run:
|
||||||
```bash
|
```bash
|
||||||
@@ -100,7 +113,7 @@ npx -y @gongrzhe/server-gmail-autoauth-mcp
|
|||||||
|
|
||||||
This will open a browser for OAuth consent. After authorization, credentials are cached.
|
This will open a browser for OAuth consent. After authorization, credentials are cached.
|
||||||
|
|
||||||
## 5. Configure launchd Service
|
## 6. Configure launchd Service
|
||||||
|
|
||||||
Get the actual paths:
|
Get the actual paths:
|
||||||
|
|
||||||
@@ -159,10 +172,10 @@ Verify it's running:
|
|||||||
launchctl list | grep nanoclaw
|
launchctl list | grep nanoclaw
|
||||||
```
|
```
|
||||||
|
|
||||||
## 6. Test
|
## 7. Test
|
||||||
|
|
||||||
Tell the user:
|
Tell the user (using the assistant name they configured):
|
||||||
> Send `@Andy hello` in your registered chat.
|
> Send `@ASSISTANT_NAME hello` in your registered chat.
|
||||||
|
|
||||||
Check the logs:
|
Check the logs:
|
||||||
```bash
|
```bash
|
||||||
@@ -176,7 +189,7 @@ The user should receive a response in WhatsApp.
|
|||||||
**Service not starting**: Check `logs/nanoclaw.error.log`
|
**Service not starting**: Check `logs/nanoclaw.error.log`
|
||||||
|
|
||||||
**No response to messages**:
|
**No response to messages**:
|
||||||
- Verify the trigger pattern matches (`@Andy` at start of message)
|
- Verify the trigger pattern matches (e.g., `@AssistantName` at start of message)
|
||||||
- Check that the chat JID is in `data/registered_groups.json`
|
- Check that the chat JID is in `data/registered_groups.json`
|
||||||
- Check `logs/nanoclaw.log` for errors
|
- Check `logs/nanoclaw.log` for errors
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user