From 809da541dc09c176e76f939485280821d227cb1f Mon Sep 17 00:00:00 2001 From: KS Jannette Date: Fri, 20 Feb 2026 10:59:01 -0500 Subject: [PATCH 1/2] more --- README.md | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index afed3cf..91bc7af 100644 --- a/README.md +++ b/README.md @@ -4,33 +4,43 @@ # Declawed -### A configurable, prompt purrr-fectable LLM mail management assisty-kitty. -### Perfect for tedious job hunts – you know the ones – it feels like the process is driving *you*. -### Whirks whiskerous wonders on forums/feed where are the valuable insights are solid-gold, but only 10% total volume, vs 90% noise. -### With some prompt purrfection and playful experimentation, helps any inbox where you need to cut adjust signal/noise to hone in, and take action on real opportunities, -### (Cat) nip that sh*t in the bud. +# Inbox brimming with stank corporate turds? +# (Cat) nip that sh*t in the bud!!! + +### Declawed is a configurable, prompt purrr-fectable LLM mail management assisty-kitty. +### Puuurfect for tedious daily sorts – you know – when it feels like you'll never get that catnip-stuffed mouse dangling on the end of the string. + +# Stop drilling byzantine menus to configure filters don't even work. +# Short, declartive prompts = wrappingp marketing-slop email's feet in tin foil and throwing it in the bathtub. + +### Short, declartive prompts are discerning, unlike filters. They whirk whiskerous wonders on forums/feeds where valuable insights are solid-gold, but only 10% of volume. +### With some refinement, promtping runs auto and cleans your that stank litter inbox. +### Morning greets you with that fresh spring-meadow armoma of opportunities and insights -- like its fucking 1998 again. + # More secure than the blue-plate crustacean A local Model Context Protocol (MCP) server you create ad configgure integrates with an LLM API you choose, a local model, or whatever your nine lives desire. Trojajedm nastie, privacy nackdoors and other goblins are not lurking in a black box install or opaque supply-chain. # Cat-o-matic -The library easily interfaces with your mail and calendar app APIs, or about any other service you want to plug in... it keeps things moving while you chase your tail or take a 19-hour nap in a sunbeam. +The library easily interfaces with mail and calendar app APIs (or about any other service you want to plug in) ... it keeps things moving while you chase your tail or take a 19-hour nap in a sunbeam. --- # Scope and Architecture ## Current implementation contemplates: --- Claude Desktop (plugging in your choice of LLM to our framework should be easy. Plus we'll be building our own UI soon-ishh). --- A Custom Local Model Context Protocol Server +-- Claude Desktop +-- Building/connectiing a Local Model Context Protocol Server -- A DNS-config’d domain, with MX records pointing to: --- A commercial or self-hosted SMTP Server (with a sensible API) +-- A commercial or self-hosted SMTP Serve ---- +## Coming soonish: +-- Our own custom UI +-- Suppost for wiring up local LLMs. -### 1. Install Node.js +# Setup -Node.js v16+ required. +### 1. Install Node.js (v16+ required). ```bash node --version @@ -42,7 +52,7 @@ If not installed, grab it from [nodejs.org](https://nodejs.org/). ### 2. Clone and Install ```bash -git clone +git clone https://github.com/kjannette/deClawed-Assisty-Kitty.git cd deClawed-Assity-Kitty npm install ``` @@ -61,8 +71,8 @@ npm install In **APIs & Services > Library**, enable: - **Gmail API** -- **Google Sheets API** (if using recruiter contact logging) -- **Google Calendar API** (if using calendar event creation) +- **Google Sheets API** (if mapping mail to sheets) +- **Google Calendar API** (if using calendar event creation, etc.s) #### 3c. Configure the OAuth Consent Screen From 1cff926c1578945851568e1d1a0c5199bc408563 Mon Sep 17 00:00:00 2001 From: KS Jannette Date: Fri, 20 Feb 2026 11:53:31 -0500 Subject: [PATCH 2/2] mo --- README.md | 146 +++++++++++++++++++++++++++++++----------- accounts.example.json | 12 ++++ 2 files changed, 122 insertions(+), 36 deletions(-) create mode 100644 accounts.example.json diff --git a/README.md b/README.md index 91bc7af..b4b1c43 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,48 @@

- Declawed +Declawed

-# Declawed +# Declawed: your kuddly assisty-kitty + +# Inbox brimming with stank-ass algorithmically-generated turds? -# Inbox brimming with stank corporate turds? # (Cat) nip that sh*t in the bud!!! ### Declawed is a configurable, prompt purrr-fectable LLM mail management assisty-kitty. -### Puuurfect for tedious daily sorts – you know – when it feels like you'll never get that catnip-stuffed mouse dangling on the end of the string. +### Puuurfect for tedious daily sorts/classification/responses +### Cuts down on the frustartion of feeling like you'll never get your paws on that catnip-stuffed mouse dangling from the string. -# Stop drilling byzantine menus to configure filters don't even work. -# Short, declartive prompts = wrappingp marketing-slop email's feet in tin foil and throwing it in the bathtub. +# Privacy -### Short, declartive prompts are discerning, unlike filters. They whirk whiskerous wonders on forums/feeds where valuable insights are solid-gold, but only 10% of volume. -### With some refinement, promtping runs auto and cleans your that stank litter inbox. -### Morning greets you with that fresh spring-meadow armoma of opportunities and insights -- like its fucking 1998 again. +# More than the blue-plate crustacean +A local Model Context Protocol (MCP) server integrates with an LLM API you choose -- both of which offer greater ops and privacy control and transparency. -# More secure than the blue-plate crustacean -A local Model Context Protocol (MCP) server you create ad configgure integrates with an LLM API you choose, a local model, or whatever your nine lives desire. Trojajedm nastie, privacy nackdoors and other goblins are not lurking in a black box install or opaque supply-chain. +# Avoid flakey (molty?) black box installs. -# Cat-o-matic -The library easily interfaces with mail and calendar app APIs (or about any other service you want to plug in) ... it keeps things moving while you chase your tail or take a 19-hour nap in a sunbeam. +Billed as QUICK AND EASY! ...loaded with more Trojans than an Olympic Village. +... Silent processes: data harvest phone-homes, behavioral analytic reporting, telemetry backdoors - all the nasties crawling the dark detritus. You know lobsters eat poop, right? + +# Declawed: **actually** easy + +## Stop drilling byzantine menus in mail, scehduling and sheets pltforms to 1. configure filters that don't even work 2. change every three months + +## Short, declarative prompts are teh equivelent of wrapping slop, bulk-mail's feet in tin foil and tossing it in the bathtub. + +### Prompts are discerning, unlike filters. For exaple, they keep the gold and bin the junk in forums/feeds where solid-gold insights are only 10% of the signal/noise. +### With refinement, prompting runs auto: cleaning that stank litter(in)box before you get a whiff. +### Morning greets you with a fresh, spring-meadow aroma of opportunities and insights -- not an avalanche of turds -- like its f*cxing 1998 again. + +# Kitty connex are simple +Assisty-kitty easily interfaces with mail and calendar and other app APIs (about any other service you want to plug in) ... it keeps things moving so you can go you chase your tail or take a 19-hour nap in a sunbeam. --- # Scope and Architecture -## Current implementation contemplates: --- Claude Desktop --- Building/connectiing a Local Model Context Protocol Server +## Current implementation requires building/using: +-- Claude Desktop (as UI - proprietary UI coming soonish) +-- Building/Connecting a Local Model Context Protocol Server -- A DNS-config’d domain, with MX records pointing to: -- A commercial or self-hosted SMTP Serve @@ -101,19 +113,19 @@ Go to **Google Auth Platform > Audience** and add each Gmail address you'll use. ### 4. Configure Accounts -Create `accounts.json` in the project root. Each key is an account alias with its own token file and optional Sheets/Calendar config: +Create file `accounts.json` in the project root. Each key is an account alias with its own token file and optional Sheets/Calendar config: ```json { "work": { - "label": "you@yourdomain.com", - "tokenFile": "token.json", - "spreadsheetId": "YOUR_GOOGLE_SHEET_ID", - "calendarId": "primary" + "label": "you@yourdomain.com", + "tokenFile": "token.json", + "spreadsheetId": "YOUR_GOOGLE_SHEET_ID", + "calendarId": "primary" }, "secondary": { - "label": "you@gmail.com", - "tokenFile": "token-secondary.json" + "label": "you@gmail.com", + "tokenFile": "token-secondary.json" } } ``` @@ -163,7 +175,7 @@ npm run build Compiles `src/**/*.ts` into `build/`. -### 8. Configure Claude Desktop +## 8. Configure Claude Desktop Edit your Claude Desktop config: @@ -176,19 +188,77 @@ Add the server: ```json { "mcpServers": { - "assistant": { - "command": "/ABSOLUTE/PATH/TO/node", - "args": [ - "/ABSOLUTE/PATH/TO/deClawed-Assity-Kitty/build/index.js" - ] - } + "assistant": { + "command": "/ABSOLUTE/PATH/TO/node", + "args": [ + "/ABSOLUTE/PATH/TO/deClawed-Assity-Kitty/build/index.js" + ] + } } } ``` Replace paths with the output of `which node` and your actual project location. -### 9. Restart Claude Desktop +## 9. Add/Configure API Keys, Credentials, and Other Secrets + +Secret files are **gitignored** -- they never leave your machine. Example templates are provided so you know what shape each file needs to be in. + +#### 9a. `credentials.json` + +This file holds your Google OAuth client credentials. **You do not write this by hand** -- it is downloaded from the Google Cloud Console (see Step 3f above). Copy the example and then replace it with the real download: + +```bash +cp credentials.example.json credentials.json +# Now replace credentials.json with the file downloaded from Google Cloud Console. +``` + +The structure looks like this (the example file ships with empty values): + +```json +{ + "installed": { + "client_id": "", + "project_id": "", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_secret": "", + "redirect_uris": ["http://localhost"] + } +} +``` + +#### 9b. `accounts.json` + +Defines each Gmail account the server manages. Copy the example and fill in your values: + +```bash +cp accounts.example.json accounts.json +``` + +| Field | What to put here | +|-------|-----------------| +| `label` | The email address for this account (display only) | +| `tokenFile` | Filename for this account's OAuth token (e.g., `token.json`) | +| `spreadsheetId` | The ID from your Google Sheet URL: `docs.google.com/spreadsheets/d//edit` (optional) | +| `calendarId` | `"primary"` for your default calendar, or a specific calendar ID (optional) | + +Add as many accounts as you need. Each key (e.g., `"work"`, `"secondary"`) becomes the account name used in tool calls and auth commands. + +#### 9c. `token*.json` (auto-generated) + +Token files are **created automatically** when you run `npm run auth` (Step 5). You do not need to create or edit them manually. A `token.example.json` is provided for reference only -- it shows the structure but the values are populated by the OAuth flow. + +#### Summary of secret files + +| Example template | Actual file (gitignored) | How to create | +|-----------------|--------------------------|---------------| +| `credentials.example.json` | `credentials.json` | Download from Google Cloud Console | +| `accounts.example.json` | `accounts.json` | Copy example, fill in your email/sheet/calendar IDs | +| `token.example.json` | `token.json`, `token-secondary.json`, etc. | Auto-generated by `npm run auth` | + +### 10. Restart Claude Desktop Fully quit (**Cmd+Q**, not just close the window) and reopen. The `assistant` server should appear under **Connectors**. @@ -199,17 +269,18 @@ Fully quit (**Cmd+Q**, not just close the window) and reopen. The `assistant` se | Tool | Description | |------|-------------| | `fetch_new_emails` | Fetches unread emails for a given account. Classification and action prompts are automatically appended to the response. | -| `delete_emails` | Moves emails to trash by Gmail message ID. Used for categories A (acknowledgements) and C (rejections). | +| `delete_emails` | Moves emails to trash by Gmail message ID. Used for categories A (acknowledgements/junk/”THANKS!”/offers) and C (rejections). | | `append_to_summary` | Logs classified emails to per-account summary files in `mailSummaries/`. Entries older than 30 days are auto-purged. | -| `log_recruiter_contact` | Logs or updates recruiter contact info in a Google Sheet. Merges rows by recruiter email + role. | -| `create_calendar_event` | Creates a Google Calendar event for scheduled calls/interviews. Skips past dates. Includes meeting links and contact info. | +| `log_contact` | Logs or updates contact info in a Google Sheet. Merges rows by email + role. | +| `create_calendar_event` | Creates a Google Calendar event for scheduled calls/meetings. Includes meeting links, attendees and their contact info. | -## MCP Prompts +## MCP Prompts (built in as of now-ish - add your own) +### BETTER YET - DO A PR OR FORK | Prompt | Account | Description | |--------|---------|-------------| | `review_emails` | work | Loads the classification + action prompts for the work inbox | -| `review_secondary_emails` | secondary | Same workflow for the secondary inbox | +| `review_secondary_emails` | secondary | Same workflow, but for a second email account inbox | Invoke these from Claude Desktop's Connectors menu, or just type "Review my inbox" / "Review my secondary inbox." @@ -291,3 +362,6 @@ deClawed-Assity-Kitty/ + + + diff --git a/accounts.example.json b/accounts.example.json new file mode 100644 index 0000000..0f61867 --- /dev/null +++ b/accounts.example.json @@ -0,0 +1,12 @@ +{ + "work": { + "label": "", + "tokenFile": "token.json", + "spreadsheetId": "", + "calendarId": "primary" + }, + "secondary": { + "label": "", + "tokenFile": "token-secondary.json" + } +}