# THTH

CLI to research, post, schedule and review your own social accounts. THTH is made by the headlesson operator.

## What is known from testing

On 2026-10-11, the headlesson operator ran this lesson with THTH 3.15.0 (macOS 26.5.2 (25F84) arm64; Python 3.12.10; isolated venv); the first 2 of 3 steps passed, then it stopped: Step 3 thth posts requires an existing owner-authorized account and login; not run. The final Next step is advice and was not run. An independent check (revision 3fadc9d) covered: Independent trial and audit up to install, help and version of the official PyPI 3.15.0 release. Its limits: Bounded to the stopping point. thth posts was not run because no owner-authorized account or login was available; posting, scheduling and reading reactions were not measured. This is the operator's own run, not a vendor claim.

- Test record: [test:tchhuqa](/tests/tchhuqa) — 2026-10-11, 3.15.0, partial

## Independent check

Independent check (revision 3fadc9d6215b): Independent trial and audit up to install, help and version of the official PyPI 3.15.0 release.

Limits: Bounded to the stopping point. thth posts was not run because no owner-authorized account or login was available; posting, scheduling and reading reactions were not measured.

## Description

THTH provides command line operations for Threads, Bluesky, Mastodon and X. Its bundled MCP server calls the same CLI. Invited users authenticate through a browser; operators can use a local ledger and digest based approval.

## Current lesson

Goal: Inspect posts in an existing owner-authorized account without publishing.

This is the current lesson. The test record above was run on the lesson as it was at its own revision; they can differ.

- 1. pip install thth
- 2. thth --help
- 3. thth posts <ACCOUNT>

Next (advice, not tested): Next: After approval of the account, text, destination and future time, use thth schedule <confirmed-account> --text "<text>" --at <future-ISO-time-with-offset>. If schedule_unavailable is returned, ask the operator to confirm the account timer; do not fall back to immediate posting.

## Cautions recorded with the lesson

These notes come from the lesson. Some describe failures seen in tests; others are general cautions. Each one is not a separately tested result.

- The account owner must first complete the invitation and browser-based thth login. Replace <ACCOUNT> with that existing account name.
- Invited-user login requires browser authorization by the account owner.
- Posting and scheduling affect external social accounts and require separate user authorization.
- Confirm: Check the invited account, permissions, timer, target and future time, then inspect the scheduling result. The like/repost README inconsistency does not settle scheduling availability.

## How to start

- cli thth: install `pip install thth`; check `thth --help`; auth: thth login opens a browser; the account owner supplies authorization.; docs: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md)
- mcp-stdio THTH bundled MCP (thth-mcp): install `pip install thth`; check `unknown`; auth: A person completes thth login; MCP tools call the same thth CLI and use its locally stored key without giving it to the assistant.; docs: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md)

Where each of these values comes from is listed per field under Sources (/interfaces/N/field).

## Compared facts

- license: MIT (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/LICENSE](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/LICENSE))
- open_source: true (checked 2026-10-09, inferred, editorial; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- pricing: unknown (not confirmed)
- has_human_gui: optional (checked 2026-10-09, inferred, editorial; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- non_interactive: false (checked 2026-10-09, inferred, editorial; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- machine_output: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/docs/usage.en.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/docs/usage.en.md))
- local_mcp: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- remote_mcp: unknown (not confirmed)
- cli: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- rest_api: unknown (not confirmed)
- auth: local-login (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- self_hostable: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- embeds_llm: unknown (not confirmed)
- refusal_contract: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- audit_log: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))
- last_release: 2026-10-09 (checked 2026-10-09, primary, official; source: [https://pypi.org/pypi/thth/json](https://pypi.org/pypi/thth/json))
- ja_support: true (checked 2026-10-09, primary, official; source: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md))

## Sources

Each line names fields of this page (as JSON pointers into the .json version) and where they come from. Labels without a link are non-public sources. Fields not listed (such as test results) are the headlesson operator's own observations.

- /name, /one_liner, /lesson/cautions/items/0, /lesson/cautions/items/1, /interfaces/0/kind, /interfaces/0/name, /interfaces/0/install, /interfaces/0/verify, /interfaces/0/auth, /interfaces/0/docs, /axes/local_mcp, /axes/cli, /axes/auth, /axes/self_hostable, /axes/refusal_contract, /axes/audit_log, /axes/ja_support: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md) (checked 2026-10-09, primary, official)
- /description, /lesson/steps/0, /lesson/steps/1, /lesson/steps/2, /interfaces/1/name, /interfaces/1/install, /interfaces/1/auth, /interfaces/1/docs: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md) (checked 2026-10-09, primary, editorial)
- /lesson/goal, /lesson/cautions/items/2: headlesson editorial judgement (checked 2026-10-09, inferred, editorial)
- /lesson/next_advice, /lesson/cautions/items/3: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/docs/導入_招待されたら.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/docs/導入_招待されたら.md) (checked 2026-10-10, inferred, editorial)
- /interfaces/1/kind: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/server.json](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/server.json) (checked 2026-10-09, primary, official)
- /axes/license: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/LICENSE](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/LICENSE) (checked 2026-10-09, primary, official)
- /axes/open_source, /axes/has_human_gui, /axes/non_interactive: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/README.md) (checked 2026-10-09, inferred, editorial)
- /axes/machine_output: [https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/docs/usage.en.md](https://github.com/aokings/thth/blob/ecfba37678d5244c8f423e9a9924aef118b0258b/docs/usage.en.md) (checked 2026-10-09, primary, official)
- /axes/last_release: [https://pypi.org/pypi/thth/json](https://pypi.org/pypi/thth/json) (checked 2026-10-09, primary, official)

## Primary record

Test results here are the operator's own past lesson trials (legacy). They are not claimed to meet level L1 of run-task-contract/0.1.0.

## Relations

- None published yet.

8 other relations point to records that are not published yet.

## Retrieve over MCP

`headlesson_get id="app:thth" sections ["lesson","gotchas"]` on https://mcp.headlesson.com/mcp

## Cite

headlesson app:thth: see test record test:tchhuqa (https://headlesson.com/tests/tchhuqa).

Page updated: 2026-10-13 (the date its content last changed).

要約（日本語）: THTH。運営の試用（2026-10-11、3.15.0、partial）の記録がある。詳しい条件・限界・出典は本文のとおり。
