tinyhat-mail-client
Help the owner open Mail on their Tinyhat desktop or connect their agent mailbox to Thunderbird, Apple Mail, Epistles, or another IMAP/SMTP client.
Skill by tinyhat-ai
Chalk Labs
Need help deploying tinyhat-mail-client?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tinyhat-ai-tinyhat-mail-client
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: security, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tinyhat-mail-client
What's inside
- Skill name
tinyhat-mail-client- Description
- Help the owner open Mail on their Tinyhat desktop or connect their agent mailbox to Thunderbird, Apple Mail, Epistles, or another IMAP/SMTP client. Use for 'open your email app' or 'set up this mailbox on my laptop'; not for reading messages, sending mail, connecting an existing Gmail inbox via OAuth, or renaming the address.
- License
- MIT
- Instructions
- 99 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (1)
- SKILL.md
SKILL.md (first lines)
# Open your Tinyhat inbox
On a compatible Computer, the **Mail** desktop shortcut opens Thunderbird with
the agent mailbox already configured. Use `tinyhat:tinyhat-computer-desktop` to
open the Computer when needed. The client software is included in the image;
do not install packages during assignment or invent a working shortcut on an
older runtime. Before promising it, check only that
`/usr/local/bin/tinyhat-mail` is executable, `~/Desktop/Tinyhat Mail.desktop`
exists, and `~/.config/tinyhat/mail/settings.json` exists. Do not read the settings
file into the transcript. If any are absent, report that Mail setup is pending
or the Computer needs a compatible image.
There are two welcome messages: Tinyhat sends a notice to the agent's inbox,
and the agent sends the owner a separate welcome. The owner replies to the
agent's welcome to start a Hermes conversation. The platform notice must not
be treated as an owner instruction or replied to automatically.
## Another email client
Explain that this is the agent's Tinyhat mailbox, separate from the owner's
Gmail or other sign-in inbox. Standard settings are full email address as
username, IMAP port **993** and SMTP port **465**, both with **SSL/TLS** and
normal password authentication. Use the server hostname supplied by Tinyhat;
do not guess it from the address or disable certificate validation.
On the Computer, use the existing authenticated platform client to request
`POST /hapi/v2/computers/me/email/client-credentials`. Keep the response inside
one process that writes it directly into a private file. Do not run a raw HTTP
command that prints the response. Never ask the owner to paste credentials.
Run this from the installed plugin package root (the directory containing
`hermes.plugin.json` and `platform.py`), using the Computer's Python:
```sh
python - <<'PYTHON'
import importlib.util, json, os, sys, tempfile
from pathlib import Path
output = None
try:
spec = importlib.util.spec_from_file_location("tinyhat_mail_export", "platform.py")
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)
client, _ = module.build_platform_client()
settings = client.post_json("/hapi/v2/computers/me/email/client-credentials", {})
for directory in (Path.home()/".config", Path.home()/".config/tinyhat",
Path.home()/".config/tinyhat/mail-client"):
if directory.is_symlink():
raise ValueError("Unsafe export directory")
directory.mkdir(mode=0o700, exist_ok=True)
if directory.stat().st_uid != os.getuid():
raise ValueError("Unexpected directory owner")
directory.chmod(0o700)
fd, output = tempfile.mkstemp(prefix="settings-", suffix=".json", dir=directory)
with os.fdopen(fd, "w") as file:
json.dump(settings, file)
print("Private settings saved:", output)
print("SMTP enabled." if settings.get("smtp_enabled") else "SMTP is not enabled.")
except Exception:
if output:
Path(output).unlink(missing_ok=True)
print("Private mail setup failed; no credentials displayed.", file=sys.stderr)
sys.exit(1)
PYTHON
```
Never `cat`, echo, or re-read that file into the transcript. The owner can open
it themselves through the desktop and enter the settings into their client.
Delete the export after use. The file lives on this Computer, not automatically
on their laptop; do not upload it to a sharing service or send it by chat/email.
For setup directly on the owner's laptop, their coding agent can call
`POST /hapi/v2/agents/{agent_id}/email/client-credentials` with its existing
account token. Apply the same single-process private-file/client-store rule
there. Never transfer a Computer identity token to the laptop or ask the cloud
agent to collect an owner sign-in code.
`SMTP enabled` above comes from `smtp_enabled` in the **client-credentials
response**. Its `sending: owner_only` permits only `allowed_recipient`; these
fields are separate from `tinyhat_mail status`, which calls the recipient
`owner_email`. If SMTP is disabled, explain that setup is pending. Do not bypass
policy with another account, JMAP submission, or a different server.
After a confirmed address change, fully close and reopen Mail so it loads the new username.
Existing messages and drafts remain in the same profile. The old address stops
receiving after the disclosed 24-hour overlap; do not delete the mail profile.
## Server-managed delivery
Clients always connect to Tinyhat's own mail server with their mailbox login.
The server controls outbound delivery and the original-mailbox Reply-To. Never
request or install provider credentials on the Computer, or configure a delivery
provider's SMTP host in the owner's client. Owner-only sending remains enforced.
Gmail mobile supports adding external IMAP accounts. Gmail web is removing
external POP/Gmailify and SMTP Send as, so do not promise permanent Gmail web
compatibility. Offer a standard IMAP/SMTP client when that option is unavailable.From tinyhat-ai/tinyhat, MIT.
More from tinyhat-ai/tinyhat
- 0.547score
tinyhat-plugin-skill-authoring
tinyhat-ai
Create, modify, or review Tinyhat plugin skills.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-credentials
tinyhat-ai
List, find, or remove secure credentials stored only on this Tinyhat Computer.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-google-workspace
tinyhat-ai
Connect, select, change permissions for, disconnect, or use one of this Tinyhat Computer's Google Workspace accounts through Tinyhat's managed gws bridge.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-google-workspace-app-manager
tinyhat-ai
Inspect or, after explicit approval, install or uninstall Tinyhat's pinned Google Workspace CLI app.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-hat-wearing
tinyhat-ai
Install, wear, resume, or finish an accessible Tinyhat Hat on this agent from its handle or URL.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-local-app-sharing
tinyhat-ai
Create, list, or expire short-lived Tinyhat Visuals when visual communication would help the user, including reports, charts, dashboards, previews…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-mail
tinyhat-ai
Use when the owner says "check your inbox," "I sent you an email, did you get it?," "read/search your email," asks whether this Agent can receive email, asks…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-account-upgrade
tinyhat-ai
Use when the owner asks to upgrade their Tinyhat account, enable Stripe Projects services, or prepare their individual connected account.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-agentphone
tinyhat-ai
Use when the owner says "call me," "call this number," "call again," "send a text/SMS," "I sent you a text, did you receive it?," asks whether this Agent can…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-codex-auth
tinyhat-ai
Start Tinyhat's OpenAI Codex / ChatGPT subscription device-auth flow, and explain the funding model.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-complete-setup
tinyhat-ai
Finish a Tinyhat Computer's onboarding when the owner asks to set up their selected coding agent and Slack or Telegram, finish setup, or get their Computer…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-connect-channel
tinyhat-ai
Connect an existing Tinyhat Computer to Telegram or Slack when its owner asks to chat with their agent there, connect a bot, or add another channel.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 10
- Last commit (this folder)
- Sep 12, 2026 (1 month ago)
- Last release
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/tinyhat-ai/tinyhat
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tinyhat-ai
- 0.547score
tinyhat-plugin-skill-authoring
tinyhat-ai
Create, modify, or review Tinyhat plugin skills.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-account-upgrade
tinyhat-ai
Use when the owner asks to upgrade their Tinyhat account, enable Stripe Projects services, or prepare their individual connected account.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-agentphone
tinyhat-ai
Use when the owner says "call me," "call this number," "call again," "send a text/SMS," "I sent you a text, did you receive it?," asks whether this Agent can…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-codex-auth
tinyhat-ai
Start Tinyhat's OpenAI Codex / ChatGPT subscription device-auth flow, and explain the funding model.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-complete-setup
tinyhat-ai
Finish a Tinyhat Computer's onboarding when the owner asks to set up their selected coding agent and Slack or Telegram, finish setup, or get their Computer…
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
tinyhat-connect-channel
tinyhat-ai
Connect an existing Tinyhat Computer to Telegram or Slack when its owner asks to chat with their agent there, connect a bot, or add another channel.
SkillBFreshness: B★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get tinyhat-mail-client running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
tinyhat-mail-client skill. Agent Mart. https://agentmart.dev/skills/tinyhat-ai-tinyhat-mail-client (last updated 2026-10-24)