Read your Pyunto Time Management schedule and log time from an AI assistant. E2EE project planning.
Open-source client libraries for Pyunto Time Management, a time-management and project-planning service with end-to-end encryption.
| Package | What it is |
|---|---|
@pyunto/tm-sdk | TypeScript client for the public REST API (v1), with client-side E2EE decryption |
@pyunto/tm-mcp | MCP (Model Context Protocol) server — connects Claude Code, Claude Desktop, Codex CLI, Cursor and other AI clients to an account |
The service itself is not open source. This repository contains only the client side: HTTP calls against the documented public API, plus the crypto needed to decrypt your own data locally. There is nothing here that talks to the database, handles billing, or holds a key.
The MCP server can be given your account password so it can decrypt project and task names. That is a lot to ask of a program you cannot read, so this is the part we publish: you can verify for yourself that the password is used only to unwrap the private key in your own process, and is never transmitted.
See sdk/src/crypto.ts for the primitives and
mcp/src/index.ts for how they're used.
No clone needed — the published package runs straight from npm:
claude mcp add pyunto-tm \
--env PYUNTO_TM_API_KEY=ptm_your_key \
-- npx -y @pyunto/tm-mcp
Full setup instructions, including Claude Desktop, Codex CLI and Cursor: https://tm.pyunto.com/docs/mcp.en.md (日本語: https://tm.pyunto.com/docs/mcp.ja.md).
Get an API key from Settings → Account → API keys in the app. Scopes decide what an integration may read or write, and a key can be revoked at any time.
npm install @pyunto/tm-sdk
import { PyuntoTM } from "@pyunto/tm-sdk";
const tm = new PyuntoTM({ apiKey: process.env.PTM_KEY! });
// Dates, durations and aggregates need no key material at all
const record = await tm.serviceRecord("2026-08-01", "2026-08-31");
// Names and memos are encrypted; unlock decrypts them locally
await tm.unlock(process.env.PTM_PASSWORD!);
const projects = await tm.projects({ decrypt: true });
npm workspaces; Node 18+.
npm install
npm run build # both packages
npm test # sdk crypto round-trips + mcp tools against a stub API
mcp depends on @pyunto/tm-sdk by version, so the published package resolves
it from the registry while local development links the workspace copy.
Found a problem in this code, or in the service? Please report it privately rather than opening a public issue: support@pyunto.com.
MIT — see LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @pyunto/tm-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"com-pyunto-time-management": {
"command": "npx",
"args": [
"-y",
"@pyunto/tm-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecom.pyunto/time-management works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.