DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Ask ChatGPT about your Gmail from the search bar: find, read, draft, organize and schedule. Chrome extension, no server.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Ordinary searches like from:bob invoice still search Gmail exactly as before. A chip at the end of the search bar
shows whether Enter will search or ask ChatGPT; click it to flip, or press Shift+Enter to always ask.
| Find | Questions become precise Gmail searches, retried and broadened until something answers them, with numbered links to the emails used. |
| Read | Whole conversations and their attachments: PDF, Word, Excel, PowerPoint, text, CSV and HTML. "This email" means the one you have open. |
| Show | "Pull it up" opens the email in Gmail; "show me everything from…" runs the search in Gmail's own list. |
| Draft | Replies threaded into the right conversation, or new emails, saved as drafts and opened for you to review and send. |
| Organize | Archive, mark read or unread, star, label, move to the inbox or Trash. Always a list you review and confirm, with Undo. Unsubscribe shows each sender's own unsubscribe link. |
| Calendar (optional) | Events from bookings and appointments, with times as the email states them (a flight departs in one time zone and lands in another), the details you need on the day, and a link back to the email. You click Add on each. Also answers "am I free Thursday afternoon?". |
| Gmail filters (optional) | Sees your filters and creates, edits, merges or deletes them when you ask, always as a list of changes you tick and confirm, with Undo. "Review my filters" finds duplicates, filters that can be merged, overlaps, labels that no longer exist and filters that have not matched anything in a year. A new filter can also be applied to mail you already have. Anything that needs no AI (labelling by sender or subject, skipping the inbox, deleting) becomes a filter, which Gmail runs itself, even with every computer off. |
| Rules (optional) | For what needs ChatGPT or reaches beyond Gmail: a Gmail search, an optional yes/no question ChatGPT answers per email, and fixed actions (label, archive, star, mark read or important, Trash, a desktop notification, or a webhook to ntfy, Home Assistant, n8n, Discord or Slack). New mail is handled as it arrives, and mail that came in while Chrome was closed is caught up later. Daily limits, a dry run on recent mail, and an activity log with Undo. Create, change, pause or delete rules in settings or by asking in chat. |
| Looks like Gmail | The answer drops down under the search bar like Gmail's own suggestions, in Gmail's light or dark theme. Expand it for long conversations; Esc closes it. |
It is not Gmail's built-in "Ask Gmail" (Google's paid Gemini feature): Inbox Pilot uses your ChatGPT account and models.
Chrome Web Store: the listing is in review. Until it is live, install from source.
From source: you need Chrome 140 or later, Node.js 22.12 or later, and npm.
git clone https://github.com/JD2005L/InboxPilot.git
cd InboxPilot
npm ci
npm run build # writes the extension to dist/
Open chrome://extensions, turn on Developer mode, click Load unpacked and choose the dist folder. The
settings page opens and starts the guided setup.
You need a ChatGPT plan that includes Codex (Plus, Pro, Business, Edu or Enterprise) and a Gmail account. The settings page walks through every click with direct links, checks each step, and shows the exact fix for every error Google or OpenAI can show.
The full policy is in PRIVACY.md (also published at https://jd2005l.github.io/InboxPilot/privacy.html).
Note: ChatGPT-plan access for third-party apps uses OpenAI's Codex sign-in, the same device-code flow as the open-source Codex CLI. It works today, but OpenAI could change or restrict it.
Gmail tab (content script: search-bar chip + answer panel, in a closed shadow root)
│ long-lived port (ask, stop, apply, undo)
▼
Service worker
├─ ChatGPT: device-code sign-in → chatgpt.com/backend-api/codex/responses (streamed, store: false)
│ tools: search_emails, read_thread, read_attachment, open_email, show_in_gmail, create_draft,
│ propose_actions, list_filters, propose_filter_changes, list_rules, propose_rule,
│ and check_calendar / propose_event while Calendar is connected
├─ Gmail API, with a token from the user's own Google OAuth client (gmail.readonly, plus gmail.modify and
│ gmail.settings.basic for filters if granted)
├─ Calendar API, same token, if connected (calendar.events)
└─ Offscreen document, only while reading a PDF: pdf.js text extraction
codex login --device-auth); the model list comes from
the plan's own catalog.chrome.identity.launchWebAuthFlow with the user's OAuth client and renews silently every
hour with exactly the scopes that were granted.ProposalBook), Add creates exactly the event its card showed (EventBook), and Apply makes only the filter
changes its card listed (FilterBook), each once. Every target is looked up first, so the model cannot invent one.propose_filter_changes. Gmail cannot edit a filter in place, so a change creates the
new filter first and only then deletes the ones it replaces: a failure part-way leaves a duplicate, never a gap.
Applying a filter to existing mail changes only the emails the card counted, and only those whose labels actually
change, so Undo reverses exactly that.With sync on (Rules tab, Turn on sync), rules, webhook destinations and the activity log live in the Google Drive app-data folder of your own Google app: hidden, private to that app, with no access to your files. Every browser writes its own heartbeat file each minute.
If the ChatGPT plan's usage limit is reached, only rules that ask ChatGPT pause, until the limit resets; filter-only rules keep running, and new mail stays queued for up to 8 days so nothing is skipped.
npm run check # typecheck, lint, unit tests, build
npm run test:watch
npm run package # store build and release/chrome-web-store-<version>/ (zip, listing text, images)
npm run package takes the store screenshots with the real built extension on a mock Gmail of made-up emails
(store/mock-gmail.html), with ChatGPT and the Gmail API replaced by scripted scenes (store/stub.js). It needs
Playwright's Chromium (npx playwright install chromium).
For your own build, you can put your Google client ID in config/extension.config.json (git-ignored; see the
.example file) or the GMC_GOOGLE_CLIENT_ID environment variable, and setup skips the paste step. Store builds
never include one. The unpacked build's extension ID is pinned by config/extension-public-key.txt
(lkkohbhfochcaebnjenjjofieghkkkil), so the Google redirect URI stays the same across rebuilds.
| Path | Role |
|---|---|
src/background/chatgpt/ | Device-code sign-in, token refresh (single-flight; refresh tokens rotate), streaming Responses client |
src/background/gmail/ | Google sign-in, Gmail API, message and MIME parsing, attachment text, draft builder |
src/background/calendar/ | Calendar API client, event validation (wall-clock times in IANA zones), the event fence |
src/background/chat/ | System prompt, tool definitions, the tool loop, organize and undo, filter changes and undo, the proposal fences |
src/offscreen/ | pdf.js text extraction, loaded only on demand |
src/content/ | Search-bar integration (Enter routing, chip), the answer panel, theme detection |
src/options/ | Settings page and setup guide |
src/shared/ | Messages, types, rules and filters in words, the DOM builder, the safe Markdown renderer |
scripts/ | Build, icon renderer, store packaging |
site/ | The project website (GitHub Pages) |
CODEX_CLIENT_VERSION in scripts/build.mjs is the Codex release the model catalog is requested for; bump it when
OpenAI ships models that need a newer client.
Bug reports, ideas and pull requests are welcome in issues. Please
run npm run check before sending a change. For a setup problem, include your Chrome version and what the settings
page shows.
Inbox Pilot is free with nothing held back. If it saves you time, you can chip in toward its upkeep. Teams on Google Workspace can have it set up for them.
More by the author: GitHub Actions Monitor and GitHub Repo Navigator.
The code is licensed under the GNU General Public License v3.0: you may use, study, change and share it, and anything you distribute that is based on it must be released under the same license, with its source.
The license covers the code, not the name. "Inbox Pilot" and its paper-plane icon identify the official release by James Levac; if you publish a fork (for example on the Chrome Web Store), give it a different name and icon so people can tell them apart.
Not affiliated with or endorsed by Google or OpenAI. Gmail is a trademark of Google LLC; ChatGPT is a trademark of OpenAI.