NEW Browse AI tools across categories — updated daily. See what's new →

Skill

Publish or update a Markdown post on telegra.ph via the `telegraph-publish` CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "pub...

Authordim-s
Version1.0.0
LicenseMIT
Token count~1,374
UpdatedJun 5, 2026

Publish or update a Markdown post on telegra.ph via the `telegraph-publish` CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "publish as a telegraph article", "make a telegra.ph article from this markdown". Russian triggers — «залей на телеграф», «опубликуй пост на telegra.ph», «оформи как telegra.ph-статью», «выложи на телеграф», «обнови телеграф-страницу», «загрузи картинку на telegra.ph». Also use proactively when the user...

Install

Quick install

via npx skills · works with 57+ agents
npx skills add https://github.com/dim-s/telegraph-cli
Or pick agent:
npx skills add dim-s/telegraph-cli --agent claude-code
npx skills add dim-s/telegraph-cli --agent cursor
npx skills add dim-s/telegraph-cli --agent codex
npx skills add dim-s/telegraph-cli --agent opencode
npx skills add dim-s/telegraph-cli --agent github-copilot
npx skills add dim-s/telegraph-cli --agent windsurf
More install options

Shorthand — useful for multi-skill repos:

npx skills add dim-s/telegraph-cli

Manual — clone the repo and drop the folder into your agent's skills directory:

git clone https://github.com/dim-s/telegraph-cli.git
cp -r telegraph-cli ~/.claude/skills/
How to use: Once installed, ask your agent to "use the Skill skill" or describe what you want (e.g. "Publish or update a Markdown post on telegra.ph via the `telegraph-publish` CLI"). Requires Node.js 18+.

Skill

Publish or update a Markdown post on telegra.ph via the telegraph-publish CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "publish as a telegraph article", "make a telegra.ph article from this markdown". Russian triggers — «залей на телеграф», «опубликуй пост на telegra.ph», «оформи как telegra.ph-статью», «выложи на телеграф», «обнови телеграф-страницу», «загрузи картинку на telegra.ph». Also use proactively when the user...

---
name: telegraph
description: Publish or update a Markdown post on telegra.ph via the telegraph-publish CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "publish as a telegraph article", "make a telegra.ph article from this markdown". Russian triggers — «залей на телеграф», «опубликуй пост на telegra.ph», «оформи как telegra.ph-статью», «выложи на телеграф», «обнови телеграф-страницу», «загрузи картинку на telegra.ph». Also use proactively when the user asks to "publish a long text as an article" without naming a platform — telegra.ph is a sane default for public long-form markdown that needs no auth. Do NOT use for: gists, pastebin, the user's personal blog, any other publishing platform, or for sending a message into a Telegram chat — telegra.ph is a public article host, not a messenger.
---

telegraph — publish Markdown to telegra.ph

telegraph-publish is a CLI that publishes (or updates) a Markdown file as a
telegra.ph article and uploads images. Stdlib-only Python 3, no runtime
dependencies. Source: <https://github.com/dim-s/telegraph-cli>.

If the telegraph-publish command is not found on this machine, read
[setup.md](setup.md) and run the install command before proceeding.
It's
a one-liner via pip / pipx / uv tool and works on macOS, Linux, and
Windows.

The telegra.ph account is created on first run and the access token is
cached in ~/.config/telegraph/account.json (or
%APPDATA%\telegraph\account.json on Windows). Keep that file —
otherwise the pages you created become unmanageable.

Commands

| Command | Purpose |
|---|---|
| telegraph-publish <file.md> | Publish a markdown file, print the URL |
| telegraph-publish <file.md> --dry-run | Parse and print stats, do not call the API |
| telegraph-publish <file.md> --edit <path-or-url> | Update an existing page with new content |
| telegraph-publish --upload-image <file> | Upload an image, print the URL |
| telegraph-publish <file.md> --no-image-upload | Skip auto-uploading local ![…](…) references |
| telegraph-publish <file.md> --author NAME [--author-url URL] | Override the per-page author byline (optional, default empty) |
| telegraph-publish --help | Full help with supported tags and env vars |

What the parser supports

  • Headings: # Title → page title; ## / ###<h3>; ####<h4>.
telegra.ph has no <h1> / <h2>, everything collapses to h3 / h4.
  • Paragraphs and ---<hr>.
  • Inline: bold, italic, ` code , [text](url).
  • Images: a standalone ![alt](src) block becomes <figure> with
<figcaption>. Local paths are auto-uploaded to telegra.ph and replaced with the absolute URL.
  • Tables: each data row becomes one paragraph with column headers in
<strong> joined by · (telegra.ph has no <table> — this is the fallback rendering).

Limitations of telegra.ph (not bugs of the CLI)

  • No <h1> / <h2> and no <table> — this is a platform limit, not
a parser limit. The CLI collapses headings and expands tables into paragraphs.
  • --upload-image often returns Unknown error (HTTP 400). telegra.ph
has throttled its public upload endpoint for external clients since ~2022. When this happens, host the image on any CDN and pass an absolute URL in markdown. The CLI emits a clear error rather than a stack trace.
  • --edit only works for pages created with the same access token. If
~/.config/telegraph/account.json is deleted, previously created pages become read-only.

Author byline

By default published pages carry no author. To set one, pass --author
"NAME" (and optionally --author-url "URL") per call, or set
TELEGRAPH_AUTHOR / TELEGRAPH_AUTHOR_URL env vars as a fallback. CLI
flags override env. Empty author is valid — telegra.ph renders the page
without an author block.

Environment variables

  • TELEGRAPH_SHORT_NAME — short account name (only used on first run,
baked into account.json).
  • TELEGRAPH_AUTHOR — fallback author name when --author is omitted.
  • TELEGRAPH_AUTHOR_URL — fallback author link when --author-url is omitted.

Typical flow

# preview
telegraph-publish draft.md --dry-run

# publish
URL=$(telegraph-publish draft.md)
echo "$URL"

# edit the published page
telegraph-publish draft.md --edit "$URL"

What not to do

  • Don't publish without --dry-run if you're unsure the markdown will
parse cleanly — telegra.ph has no "delete page" API, drafts you don't want pile up in the account.
  • Don't --edit the user's published post without explicit permission —
it's an irreversible change to a public artifact.
  • Don't retry the Unknown error on /upload` in a loop — it's a platform
policy, retries don't help; use an external image host instead.

---

Source: https://github.com/dim-s/telegraph-cli
Author: dim-s
Discovered via: skillsdirectory.com
Genre: development

SKILL.md source

---
name: Skill
description: Publish or update a Markdown post on telegra.ph via the `telegraph-publish` CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "pub...
---

# Skill

Publish or update a Markdown post on telegra.ph via the `telegraph-publish` CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "publish as a telegraph article", "make a telegra.ph article from this markdown". Russian triggers — «залей на телеграф», «опубликуй пост на telegra.ph», «оформи как telegra.ph-статью», «выложи на телеграф», «обнови телеграф-страницу», «загрузи картинку на telegra.ph». Also use proactively when the user...

---
name: telegraph
description: Publish or update a Markdown post on telegra.ph via the `telegraph-publish` CLI. English triggers — "publish to telegra.ph", "post on telegraph", "upload to telegra.ph", "edit telegraph page", "publish as a telegraph article", "make a telegra.ph article from this markdown". Russian triggers — «залей на телеграф», «опубликуй пост на telegra.ph», «оформи как telegra.ph-статью», «выложи на телеграф», «обнови телеграф-страницу», «загрузи картинку на telegra.ph». Also use proactively when the user asks to "publish a long text as an article" without naming a platform — telegra.ph is a sane default for public long-form markdown that needs no auth. Do NOT use for: gists, pastebin, the user's personal blog, any other publishing platform, or for sending a message into a Telegram chat — telegra.ph is a public article host, not a messenger.
---

# telegraph — publish Markdown to telegra.ph

`telegraph-publish` is a CLI that publishes (or updates) a Markdown file as a
telegra.ph article and uploads images. Stdlib-only Python 3, no runtime
dependencies. Source: <https://github.com/dim-s/telegraph-cli>.

**If the `telegraph-publish` command is not found on this machine, read
[setup.md](setup.md) and run the install command before proceeding.** It's
a one-liner via `pip` / `pipx` / `uv tool` and works on macOS, Linux, and
Windows.

The telegra.ph account is created on first run and the access token is
cached in `~/.config/telegraph/account.json` (or
`%APPDATA%\telegraph\account.json` on Windows). Keep that file —
otherwise the pages you created become unmanageable.

## Commands

| Command | Purpose |
|---|---|
| `telegraph-publish <file.md>` | Publish a markdown file, print the URL |
| `telegraph-publish <file.md> --dry-run` | Parse and print stats, do not call the API |
| `telegraph-publish <file.md> --edit <path-or-url>` | Update an existing page with new content |
| `telegraph-publish --upload-image <file>` | Upload an image, print the URL |
| `telegraph-publish <file.md> --no-image-upload` | Skip auto-uploading local `![…](…)` references |
| `telegraph-publish <file.md> --author NAME [--author-url URL]` | Override the per-page author byline (optional, default empty) |
| `telegraph-publish --help` | Full help with supported tags and env vars |

## What the parser supports

- Headings: `# Title` → page title; `##` / `###` → `<h3>`; `####` → `<h4>`.
  telegra.ph has no `<h1>` / `<h2>`, everything collapses to h3 / h4.
- Paragraphs and `---` → `<hr>`.
- Inline: `**bold**`, `*italic*`, `` `code` ``, `[text](url)`.
- Images: a standalone `![alt](src)` block becomes `<figure>` with
  `<figcaption>`. Local paths are auto-uploaded to telegra.ph and replaced
  with the absolute URL.
- Tables: each data row becomes one paragraph with column headers in
  `<strong>` joined by `·` (telegra.ph has no `<table>` — this is the
  fallback rendering).

## Limitations of telegra.ph (not bugs of the CLI)

- **No `<h1>` / `<h2>` and no `<table>`** — this is a platform limit, not
  a parser limit. The CLI collapses headings and expands tables into
  paragraphs.
- **`--upload-image` often returns `Unknown error` (HTTP 400).** telegra.ph
  has throttled its public upload endpoint for external clients since
  ~2022. When this happens, host the image on any CDN and pass an absolute
  URL in markdown. The CLI emits a clear error rather than a stack trace.
- **`--edit` only works for pages created with the same access token.** If
  `~/.config/telegraph/account.json` is deleted, previously created pages
  become read-only.

## Author byline

By default published pages carry no author. To set one, pass `--author
"NAME"` (and optionally `--author-url "URL"`) per call, or set
`TELEGRAPH_AUTHOR` / `TELEGRAPH_AUTHOR_URL` env vars as a fallback. CLI
flags override env. Empty author is valid — telegra.ph renders the page
without an author block.

## Environment variables

- `TELEGRAPH_SHORT_NAME` — short account name (only used on first run,
  baked into `account.json`).
- `TELEGRAPH_AUTHOR` — fallback author name when `--author` is omitted.
- `TELEGRAPH_AUTHOR_URL` — fallback author link when `--author-url` is omitted.

## Typical flow

```bash
# preview
telegraph-publish draft.md --dry-run

# publish
URL=$(telegraph-publish draft.md)
echo "$URL"

# edit the published page
telegraph-publish draft.md --edit "$URL"
```

## What not to do

- Don't publish without `--dry-run` if you're unsure the markdown will
  parse cleanly — telegra.ph has no "delete page" API, drafts you don't
  want pile up in the account.
- Don't `--edit` the user's published post without explicit permission —
  it's an irreversible change to a public artifact.
- Don't retry the `Unknown error` on `/upload` in a loop — it's a platform
  policy, retries don't help; use an external image host instead.


---

**Source**: https://github.com/dim-s/telegraph-cli
**Author**: dim-s
**Discovered via**: skillsdirectory.com
**Genre**: development

Related skills 6

caveman

★ Featured

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

juliusbrussee 167k
Development

secure-linux-web-hosting

★ Featured

Use when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.

xixu-me 155k
Development

readme-i18n

★ Featured

Use when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.

xixu-me 155k
Development

lark-shared

★ Featured

Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-cli, or seeing _notice in JSON output.

larksuite 155k
Development

improve-codebase-architecture

★ Featured

Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.

mattpocock 151k
Development

paper-context-resolver

★ Featured

Optional RigorPilot helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacin...

lllllllama 127k
Development