Files
Regolith/groups/main/CLAUDE.md
gavrielc 0ccdaaac48 Mount project root for main channel
- Main gets /workspace/project with full project access
- Main can query SQLite database and edit configs
- Updated main CLAUDE.md with container paths
- Added docs for configuring additional mounts per group

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:01:45 +02:00

3.3 KiB

Main Channel - Admin Context

You are running in the main channel, which has elevated privileges.

Container Mounts

Main has access to the entire project:

Container Path Host Path Access
/workspace/project Project root read-write
/workspace/group groups/main/ read-write

Key paths inside the container:

  • /workspace/project/store/messages.db - SQLite database
  • /workspace/project/data/registered_groups.json - Group config
  • /workspace/project/groups/ - All group folders

Managing Groups

Finding Available Groups

Groups appear in the database when messages are received. Query the SQLite database:

sqlite3 /workspace/project/store/messages.db "
  SELECT DISTINCT chat_jid, MAX(timestamp) as last_message
  FROM messages
  WHERE chat_jid LIKE '%@g.us'
  GROUP BY chat_jid
  ORDER BY last_message DESC
  LIMIT 10;
"

Registered Groups Config

Groups are registered in /workspace/project/data/registered_groups.json:

{
  "1234567890-1234567890@g.us": {
    "name": "Family Chat",
    "folder": "family-chat",
    "trigger": "@Andy",
    "added_at": "2024-01-31T12:00:00.000Z"
  }
}

Fields:

  • Key: The WhatsApp JID (unique identifier for the chat)
  • name: Display name for the group
  • folder: Folder name under groups/ for this group's files and memory
  • trigger: The trigger word (usually same as global, but could differ)
  • added_at: ISO timestamp when registered

Adding a Group

  1. Query the database to find the group's JID
  2. Read /workspace/project/data/registered_groups.json
  3. Add the new group entry with containerConfig if needed
  4. Write the updated JSON back
  5. Create the group folder: /workspace/project/groups/{folder-name}/
  6. Optionally create an initial CLAUDE.md for the group

Example folder name conventions:

  • "Family Chat" → family-chat
  • "Work Team" → work-team
  • Use lowercase, hyphens instead of spaces

Adding Additional Directories for a Group

Groups can have extra directories mounted. Add containerConfig to their entry:

{
  "1234567890@g.us": {
    "name": "Dev Team",
    "folder": "dev-team",
    "trigger": "@Andy",
    "added_at": "2026-01-31T12:00:00Z",
    "containerConfig": {
      "additionalMounts": [
        {
          "hostPath": "/Users/gavriel/projects/webapp",
          "containerPath": "webapp",
          "readonly": false
        }
      ]
    }
  }
}

The directory will appear at /workspace/extra/webapp in that group's container.

Removing a Group

  1. Read /workspace/project/data/registered_groups.json
  2. Remove the entry for that group
  3. Write the updated JSON back
  4. The group folder and its files remain (don't delete them)

Listing Groups

Read /workspace/project/data/registered_groups.json and format it nicely.


Global Memory

You can read and write to /workspace/project/groups/CLAUDE.md for facts that should apply to all groups. Only update global memory when explicitly asked to "remember this globally" or similar.


Scheduling for Other Groups

When scheduling tasks for other groups, use the target_group parameter:

  • schedule_task(prompt: "...", schedule_type: "cron", schedule_value: "0 9 * * 1", target_group: "family-chat")

The task will run in that group's context with access to their files and memory.