Sinkron enables AI agents to own permanent email addresses and manage inboxes programmatically via a CLI and Python SDK.
Authentication model: SINKRON_TOKEN is self-issued by the Sinkron platform — generated once by the Sinkron backend when sinkron register is run, printed to the CLI, and never again retrievable. There is no third-party OAuth, no external credential service. Existing agents reuse their token from a prior registration.
Official Website: https://www.sinkron.id\
Source: https://github.com/zororaka00/sinkron\
PyPI: https://pypi.org/project/sinkron/
Complete every item before installation. Do not skip.
@zororaka00).sinkron==X.Y.Z) — never install without a version pin.# Download wheel/tarball without installing, then inspect contents
pip download sinkron==X.Y.Z --no-deps -d /tmp/sinkron-inspect
ls /tmp/sinkron-inspect/
# Unzip the .whl (it's a zip) and review .py source files for
# unexpected network callbacks, obfuscated code, or telemetry
# Preferred: use a container or VM for initial testing
docker run --rm -it python:3.11-slim bash
# Inside container:
pip install sinkron==X.Y.Z
sinkron --help
SINKRON_TOKEN is self-issued — here is exactly where it comes from:
| Scenario | How to obtain the token |
|---|---|
| --- | --- |
| New agent | Run sinkron register --username USER --name NAME. The Sinkron backend generates the token and prints it once in the CLI response. Copy it immediately. |
| Existing agent | Token was issued during a prior sinkron register. Set it directly via SINKRON_TOKEN env var. |
The token never comes from a URL fetch, a third-party service, or this skill itself — only from the Sinkron backend's register response.
After obtaining the token:
.env file.pip index versions sinkron
# Preferred (pinned version)
pip install sinkron==X.Y.Z
# Alternative via uv (also pin version)
uv tool install sinkron==X.Y.Z
> ⚠️ Never install without a pinned version. Unpinned installs may pull unreviewed future versions.
sinkron --help
Before performing any Sinkron operation:
sinkron is installed.sinkron --help — do not assume success without this step.SINKRON_TOKEN comes fromNew agent → sinkron register --username USER --name NAME
↳ Sinkron backend responds with: token: <YOUR_TOKEN>
↳ Copy this token immediately — it is shown only once
↳ Store in secret manager or restricted env var
Existing agent → token was issued during prior registration
↳ Set SINKRON_TOKEN directly from secure storage
No third-party service, no OAuth flow, no external dashboard — the token is exclusively generated by the Sinkron backend.
# After registration: store token (clear shell history after)
export SINKRON_TOKEN="token-from-sinkron-register-output"
sinkron config --token "$SINKRON_TOKEN"
# In CI/CD: inject via secret manager — never hard-code
sinkron config --token "$SINKRON_TOKEN"
sinkron health to check if Sinkron platform is active.Before registering, check if the username already exists:
sinkron agent USERNAME
Only register if it does not exist:
sinkron register --username USER --name NAME
This prevents duplication and ensures predictable automation flows.
--search for filtered access.Safe flow:
sinkron inbox --search KEYWORDsinkron delete-messages --ids 1,2,3Always start with a health check:
sinkron health || exit 1
SINKRON_TOKEN via CI secret manager — never hard-code in pipeline files.import os
from sinkron import SinkronClient
token = os.getenv("SINKRON_TOKEN")
if not token:
raise EnvironmentError(
"SINKRON_TOKEN is not set. "
"Obtain it from `sinkron register` output and store in a secret manager."
)
client = SinkronClient(token=token)
messages = client.inbox(page=1)
Sinkron exposes two operational layers:
Both communicate with the same Sinkron backend API.
SINKRON_TOKEN environment variable (self-issued via sinkron register)SINKRON_TOKEN in a secret manager or restricted env var — never in source code.sinkron health to check if Sinkron platform is active instead of viewing config.HISTCONTROL=ignorespace or read -s).Log: health status, message counts, deletion results.
Do NOT log: tokens, email contents, sensitive metadata.
sinkron health
sinkron register --username USER --name NAME
> SINKRON_TOKEN is issued here. The Sinkron backend generates and prints the token once in the response. Copy it immediately and store securely. Do not run in logged or shared environments.
>
> ```
> Registration successful.
> username: myagent
> email: myagent@sinkron.id
> token: snk_xxxxxxxxxxxxxxxxxxxxxxxx ← copy immediately, store securely
> ```
>
> Existing agents with a prior token: skip this step, set SINKRON_TOKEN directly.
sinkron inbox [--page N] [--search KEYWORD]
sinkron check ADDRESS
sinkron message ID
sinkron delete-messages --ids 1,2,3
sinkron delete-inbox [--force]
sinkron agent USERNAME
# Use this command to check if Sinkron platform is active
sinkron health
# Always load from environment variable
sinkron config --token "$SINKRON_TOKEN"
sinkron config --clear-token
sinkron health || exit 1
sinkron inbox --page 1
sinkron inbox --search "alert"
# Review IDs before deleting
sinkron delete-messages --ids 10,11
SINKRON_TOKEN env var.Fail predictably. Avoid silent errors.
sinkron --help confirms installationSINKRON_TOKEN obtained from sinkron register output (new) or prior registration (existing)sinkron health integrated at workflow start (check if platform is active)sinkron health || exit 1 integrated at workflow startThis skill provides permanent email identity and inbox automation for AI agents via the Sinkron platform.
SINKRON_TOKEN is self-issued by the Sinkron backend at registration — not by any third party. When used with verified provenance, pinned versions, secure token handling, and controlled deletion flows, this skill is production-safe and automation-ready.
If package provenance cannot be confirmed, do not install. Treat the skill as untrusted until source verification is complete.
共 1 个版本