← Pipeline

BetterChatGPT JS Plugin Support ($100)

Drafted
Reward: $100Platform: githubRail: direct (risky)Competition: 0 commentsAI fit: highOpen issue ↗
Log time
Record payment (→ marks Paid)
Decision / notes
Read-only — unlock operator mode (top right) to edit.

Risk

| Risk | Likelihood | Mitigation | |---|---|---| | Poster doesn't pay | Medium (personal bounty, old issue) | Confirm before spending any effort | | Feature already in repo | Medium (2+ years elapsed) | Check repo first | | PR rejected by maintainer | Low-Medium (8400-star repo, active) | Write clean, tested code | | Spec ambiguity | Low | TypingMind is the reference; link in PR |

Deliverables (0)

None yet — MINT attaches the PR/claim text + code here once it builds.

Timeline

No events yet.

Full proposal (drafted by MINT)

# Proposal Draft — BetterChatGPT JS Plugin Support ($100)

> **Status**: DRAFT — requires operator review and approval before submission  
> **DO NOT SUBMIT without operator approval** (per gig-earner guardrails)  
> **Written**: 2026-06-04T09:00:41Z (G4 leaf)

---

## Bounty Details

| Field | Value |
|---|---|
| Issue | https://github.com/ztjhz/BetterChatGPT/issues/499 |
| Title | FR: ($100 Bounty) Add JavaScript based plugin |
| Repo | ztjhz/BetterChatGPT (8,400 stars) |
| Reward | $100 USD (personal bounty from issue poster) |
| Payment rail | Direct from poster (no Algora/IssueHunt — requires bilateral agreement) |
| Discover score | 6.80 (scope=3.2 spec=2.7 comp=5 pay=3.0) |
| Competition | 0 comments |
| Issue age | Posted 2023-11-24 (open, no activity) |

## Issue Summary

The poster requests plugin support similar to [TypingMind](https://typingmind.com) — JavaScript functions with an OpenAI function spec that can be executed by the model, running fully client-side. Use cases: web search, chart creation, custom tools.

**Key requirement (from issue):**
> "Allow the creation of plugins (JS functions with an OpenAI function spec that can be executed by the model) similar to how TypingMind does it."

## Pre-Qualification Checks — UPDATED 2026-06-04T11:44Z (tick=635)

**MINT verified the following via GitHub API:**

1. ✅ **Issue is STILL OPEN** — state: open, 0 comments, last updated 2023-11-24 (no changes in 2.5 years)
2. ✅ **NO plugin system exists in the repo** — searched `PluginManager`, `usePlugin` in codebase: 0 hits. The `src/` directory has no `plugins/` folder.
3. ⚠️ **REPO IS DORMANT** — last commit was 2024-05-14 (13+ months ago: "Add gpt-4o"). No commits since. Maintainer appears inactive.
4. ❌ **HIGH RISK: poster unresponsive** — 0 comments on the issue, posted 2023-11-24, no updates. Poster may have moved on.

**Revised risk assessment:**
- The $100 feature opportunity is REAL (not yet built)
- BUT the repo is unmaintained — even a perfect PR may sit forever
- Personal bounty = no escrow; poster (not the maintainer) controls payment

**Recommended first step**: Operator posts a comment: "Hi, is the $100 bounty still available? I'm interested in implementing this plugin system." Wait for response before MINT builds the PR. If no response in 7 days → deprioritize.

## Proposed Solution Approach

### Architecture

1. **Plugin definition schema** (follows OpenAI function spec):
   ```json
   {
     "name": "web_search",
     "description": "Search the web for recent information",
     "parameters": {
       "type": "object",
       "properties": {
         "query": { "type": "string", "description": "Search query" }
       },
       "required": ["query"]
     },
     "implementation": "async function webSearch(query) { ... }"
   }
   ```

2. **Plugin registry** (localStorage-persisted):
   - `PluginManager` class: load/save/validate plugins
   - UI: "Plugins" tab in settings modal
   - Add/edit/delete plugin JSON definitions

3. **Execution layer**:
   - Intercept model `tool_call` / `function_call` responses
   - Match to registered plugin by name
   - Execute `new Function('params', implementation)(args)` in sandboxed scope
   - Feed result back as tool/function message

4. **Security**: `Function()` with limited scope (no `window`, no `fetch` to arbitrary URLs without CORS — browser already enforces this client-side)

### Deliverable (PR branch `feat/js-plugins`)

- `src/hooks/usePluginManager.ts` — plugin CRUD + localStorage persistence
- `src/components/PluginModal.tsx` — settings UI (add/edit/delete plugins)
- `src/utils/pluginExecutor.ts` — safe JS execution + tool_call routing
- Updated `ChatInterface.tsx` — intercept function_call responses
- `README.md` — 2-paragraph plugin authoring guide + example

### Estimated timeline

MINT can produce a draft PR branch in 1 tick (~15 min) given the codebase structure. Operator review + testing would be the main gate.

## Risk Assessment

| Risk | Likelihood | Mitigation |
|---|---|---|
| Poster doesn't pay | Medium (personal bounty, old issue) | Confirm before spending any effort |
| Feature already in repo | Medium (2+ years elapsed) | Check repo first |
| PR rejected by maintainer | Low-Medium (8400-star repo, active) | Write clean, tested code |
| Spec ambiguity | Low | TypingMind is the reference; link in PR |

## Verdict

**GATE-1 (confirm with poster)** before building. If poster confirms $100 is live:
→ MINT builds the PR in 1 tick
→ Operator posts comment claiming intent + links PR
→ $100 collected via agreed method

**Alternative**: If poster is unresponsive, this becomes a contribution to the open-source project only (no payment).

---

## Alternative: arakoodev/EdgeChains Qdrant Bounty

If BetterChatGPT poster is unresponsive, consider:
- **Issue**: https://github.com/arakoodev/EdgeChains/issues/273
- **Task**: Add qdrant vector DB support to the JavaScript SDK using the REST API directly
- **Payment**: Via Algora (confirmed working payment rail) — likely $25-$75
- **Stars**: 423 (real active project)
- **Spec**: "use the API directly and wrap them in edgechains classes" — very clear
- **Age**: Open since 2023, no recent activity — lower competition
- **AI-do-ability**: HIGH — pure TypeScript SDK extension with clear API docs

**Why it's better as a safety net**: Algora is a real payment rail with on-chain escrow. Even if reward is small ($25-$75), it's guaranteed on merge. BetterChatGPT is higher $ but personal-promise payment.

---

*Next step: Operator reviews this draft and either (a) confirms with BetterChatGPT poster, (b) claims the arakoodev bounty via Algora, or (c) defers — MINT will continue discovering.*