Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>NowTempMail — Disposable Inboxes & OTP for TestingNew to Visual Studio Code? Get it now.
NowTempMail — Disposable Inboxes & OTP for Testing

NowTempMail — Disposable Inboxes & OTP for Testing

NowTempMail

|
1 install
| (0) | Free
Create a disposable inbox and grab the verification code without leaving your editor. No account, no PII.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

NowTempMail for VS Code

A disposable inbox and its verification code, without leaving your editor. No account. No sign-in. No PII. The mailbox expires on its own in 24 hours.

⌘⇧P → NowTempMail: New Inbox     →  a1b2c3@nowtempmail.com, on your clipboard
paste it into the app you are testing
⌥⌘;  → Copy Latest Code          →  482913, on your clipboard

What it does

  • One command for an address. NowTempMail: New Inbox creates a mailbox and copies the address. There is no signup step, because there is no account.
  • One shortcut for the code. Ctrl+Alt+; / Cmd+Alt+; copies the latest verification code — instantly if one is already sitting there, otherwise it waits for the next one and copies it the moment it lands.
  • Codes are extracted server-side, at the moment the mail arrives. There is no regex to write here, and none in your test suite either.
  • A live inbox in the sidebar, with the code on the message row itself rather than buried in the body.
  • A reader that opens as plain text, because message HTML is attacker-controlled. The HTML preview is opt-in, script-free, and blocks remote images until you ask.

Install

Marketplace, or Open VSX for Cursor, Windsurf and VSCodium. Requires VS Code 1.90+.

Desktop and remote (SSH, WSL, Containers, Codespaces) only — not vscode.dev. That is not an oversight: the keyed API rejects any request carrying an Origin header, which every browser attaches and no extension host does.

Commands

Command Default keybinding
NowTempMail: New Inbox —
NowTempMail: Copy Latest Code Ctrl+Alt+; / Cmd+Alt+;
NowTempMail: Copy Inbox Address — (or click the status bar)
NowTempMail: Insert Inbox Address at Cursor —
NowTempMail: Open HTML Preview —
NowTempMail: Open a Link From This Message —
NowTempMail: Set API Key —
NowTempMail: Get Started —

Free, without a key

Everything above works with no key at all, on the same account-less service the web app uses: one live inbox at a time, 24-hour lifetime, generated address.

With a free API key

Sign in with GitHub at nowtempmail.com/developers/keys, then run NowTempMail: Set API Key. That adds:

  • several inboxes at once,
  • custom addresses and longer lifetimes (plan permitting),
  • your real plan and remaining daily quota in the view header,
  • the same key your test suite uses, so the editor and the suite share one account.

The key is stored in the OS keychain through VS Code's SecretStorage — never in settings.json, which syncs to the cloud and ends up in dotfile repos. If the extension finds a key in your settings it will offer to move it and then clear it.

In your tests

The same inboxes are available to Playwright, Cypress, Vitest and Jest through the nowtempmail package:

import { test, expect } from "nowtempmail/playwright";

test("a new user verifies their email address", async ({ page, inbox }) => {
  await page.goto("/signup");
  await page.getByLabel("Email").fill(inbox.address);
  await page.getByRole("button", { name: "Create account" }).click();

  const code = await inbox.waitForCode();

  await page.getByLabel("Verification code").fill(code);
  await page.getByRole("button", { name: "Verify" }).click();
  await expect(page.getByText("Welcome")).toBeVisible();
});

Type ntm-playwright in a JS/TS file for that as a snippet.

Settings

Setting Default What it does
nowtempmail.notifications.onNewMessage true One notification per poll, never while the window is unfocused.
nowtempmail.polling.enabled true Watch inboxes in the background at all.
nowtempmail.mailbox.ttlSeconds 0 Lifetime for new inboxes. Needs a key.
nowtempmail.mailbox.domain "" Domain for new inboxes. Needs a key.
nowtempmail.htmlPreview.allowRemoteImages false Load remote images without asking.
nowtempmail.telemetry.enabled false Local counters in the output channel. No network transport exists in this build.

Privacy and security

  • No account, no PII. The account-less mode asks for nothing about you.
  • Credentials live in the keychain, never in settings or workspace state.
  • Message HTML is treated as hostile. Scripts, <base>, forms, frames and event handlers are stripped before rendering; the preview panel runs with scripts disabled, no local resource access, and a default-src 'none' CSP. Links are never clickable inside a rendered message — opening one shows you the full URL first.
  • Remote images are blocked by default. An image in an email is a read receipt.
  • No analytics. This build ships no telemetry transport at all.

Polling, and your rate limit

There is no push channel to an editor, so live inboxes are polled: every 2s for 90s after you create an inbox or insert an address, 5s while the view is open, 20s in the background, 60s when the window is unfocused, and not at all when nothing is live. A 429 is honoured to the second and drops the rate a tier. On the Free plan's 30 requests/minute, every sustained tier fits with room to spare.

Feedback

nowtempmail.userjot.com · nowtempmail.com

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft