presenterm

mfontaniniBSD-2-Clause活跃维护

在终端里把 Markdown 直接变成幻灯片播放,写演示文稿不用离开命令行,适合喜欢纯文本和终端工作流的开发者。

A markdown terminal slideshow tool

v0.16.1发布于 2026-02-20 01:51 UTC8,967star +5 / 7 天211fork同步于 2026-11-10 11:31 UTC

怎么上手

由 README 提炼,执行前请确认
brew install presenterm
硬件要求按 README 说明

README 未说明硬件要求;图片与动图显示依赖 kitty、iterm2、wezterm、ghostty、foot 等终端。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Markdown 写幻灯片,直接在终端里放映,省去打开 PPT 工具的麻烦

在终端里把 Markdown 直接变成幻灯片播放,写演示文稿不用离开命令行,适合喜欢纯文本和终端工作流的开发者。

核心能力

  • 用 Markdown 文件组织一页或多页幻灯片
  • 在 kitty、iterm2、wezterm 等终端显示图片和动图
  • 内置多套主题,可自定义颜色、边距与对齐布局
  • 支持多语言代码高亮与选择性动态高亮
  • 可渲染 mermaid、d2 图及 LaTeX、typst 公式

容易踩的坑

图片和动图需要终端本身支持图像协议,普通终端下无法显示;mermaid、d2、LaTeX 公式渲染可能需要额外安装对应工具;README 未给出直接运行命令,需查阅文档确认用法

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.16.1
  1. v0.16.1最新正式版2026-02-20 · 2026-02-20 01:51 UTC

    New features

    • Allow italic to be used as well as italics in theme (#847).

    Fixes

    • Render modals at the center of the screen (#848).

    Docs

    • Add styling docs to slide_title (#845) - thanks @0atman.
    • Describe slide titles and headings better (#846).
  2. v0.16.02026-02-16 · 2026-02-16 00:01 UTC
    查看更新说明

    Breaking changes

    • Sixel is now supported in all platform and enabled by default. The will break any build scripts that enable the sixel feature flag since that is now gone. Any maintainer that is building the package and enabling that flag should no longer do so (#828).

    New features

    • Allow executing snippets inside a PTY. This allows you to run tools that move the cursor around and redraw the terminal inside a slide (e.g. top, htop, etc). (#781) (#794) (#809) (#788) (#808) (#807) (#789).
    • Use icy_sixel crate instead of sixel-rs. icy_sixel is a pure rust crate which simplifies code distribution and allows enabling sixel support by default (#818) - thanks @gcavelier.
    • Add support for user comments in presentation rendering (#773).
    • Allow passing in a mermaid config file (#833).
    • Allow specifying mmdc puppeteer config path (#830) (#842).
    • Add keymap to toggle layout grid (#718).
    • Add +auto_exec attribute to snippets (#732).
    • Update bat themes/syntaxes to latest to support a few new themes (#811).
    • Add tokyonight moon/day/night themes (#751) - thanks @cloudlena.
    • Allow configuring a global alignment in theme (#801).
    • Add dynamic theme option (light/dark) based on terminal color (#778) - thanks @JOTSR.
    • Add common es executors and support jsx and ts(x) snippets (#783) - thanks @JOTSR.
    • Allow configuring code block line numbers at theme level (#771).
    • Allow setting prefix on slide titles (#739).
    • Allow configuring whether first h1 heading is slide title (#738) (#756).
    • Allow styling bold/italics (#737).
    • Respect pause in speaker notes (#735).
    • Add --list-comment-commands cli option (#723) - thanks @rochacbruno.
    • Allow setting headings to be bold/italics/underlined (#721).
    • Add typescript-react/tsx highlighting (#777) - thanks @JOTSR.
    • Add dart code highlighting #779 ([#780](https://
  3. v0.15.12025-08-03 · 2025-08-03 20:41 UTC
    查看更新说明

    Fixes

    • Disable OSC 11 when running in tmux (#696).
    • Follow custom theme symlinks (#692).
  4. v0.15.02025-07-13 · 2025-07-13 20:52 UTC
    查看更新说明

    Breaking changes

    • The behavior for "jump next fast" and "jump previous fast" keybindings (defaults to n and p) now jumps straight from one slide to the next/previous one ignoring pauses. Before this used to "reveal" all pauses when jumping forward before going to the next slide. This behavior was weird and unintuitive so now fast jumps go straight into the next/previous slides. The action of "showing all pauses on the current slide" can now be done by pressing s (#678).

    New features

    • Allow specifying where a snippet's execution output will go (#658).
    • Add include comment command to import markdown files (#651) (#683).
    • Allow validating snippets without explicitly executing them by using --validate-snippets switch (#645) (#637).
    • Support iterm2 image protocol when running in tmux (#661).
    • Add support for d2 diagrams (#657).
    • Errors encountered when parsing markdown now always display the file, line, and column where the error was found, as well as the markdown line that caused the error (#674) (#653) (#684) (#685).
    • Superscript via ^this^ and <sup>this</sup> syntaxes is supported when using the kitty terminal. For other terminals we try to use unicode half block characters which cover a portion of the ASCII charset. (#606)(#617 ) (#665).
    • Allow alternative snippet executors for languages that support execution. This allows, for example, runnig rust code via rust-script or python code via pytest (#614).
    • Allow using env var PRESENTERM_CONFIG_FILE to point to the config file (#663) - thanks @Silver-Golden.
    • Set background color via OSC 11 to avoid having a colored edge around the presentation (#623) (#624) (#627).
    • Add support for markdown footnotes (#616).
    • Runtime errors are now centered rather than being left aligned with some fixed margin (#638).
    • Allow configuring number of newlines in between list items (#628).
    • Allow 3 digit hex colors (#609) - thanks @peterc-s.
    • Allow configuring font used in PDF export (#608).
    • Added
  5. v0.14.02025-05-17 · 2025-05-17 20:36 UTC
    查看更新说明

    New features

    • Add support for exporting presentations as HTML files (#566) (#595) (#575) (#599) - thanks @JustSimplyKyle.
    • Snippet execution output now contains configurable padding and built-in themes default to the same padding as snippets (2 spaces horizontally, one line vertically) (#592) (#593).
    • Add highlighting and execution support for Jsonnet (#585) - thanks @imobachgs.
    • Allow configuring snippets to be executed sequentially during exports (#584).

    Fixes

    • Skip slides with pauses correctly (#598).
    • Avoid printing text if there's no vertical space for it, which otherwise looks bad particularly when using font size > 1 (#594).
    • Execute snippets only once during export (#583).
    • Don't add an extra pause after lists if there's nothing left (#580).
    • Allow interleaved spans and variables in footer (#577).
    • Truly center +exec_replace snippet output (#572).

    Docs

    • Added link to public presentation using presenterm (#589) - thanks @pwnwriter.
    • Rename parameter name to the correct one in docs (#570) - thanks @DzuWe.
    • Fix typo in highlighting.md (#586) - thanks @0atman.

    Chore

    • Bump dependencies (#596).

    ❤️ Sponsors

    Thanks to the following users who supported presenterm via a github sponsorship in this release:

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    presenterm

    crates-badge brew-badge nix-badge arch-badge scoop-badge winget-badge

    presenterm lets you create presentations in markdown format and run them from your terminal, with support for image and animated gifs, highly customizable themes, code highlighting, exporting presentations into PDF format, and plenty of other features. This is how the demo presentation looks like when running in the kitty terminal:

    Check the rest of the example presentations in the examples directory.

    Documentation

    Visit the documentation to get started.

    Features

    See the introduction page to learn more.

    presenterm in action

    Here are some talks and demos that feature presenterm:

    Gave a talk using presenterm? We would love to feature it here! Open a PR or issue to get it added.