mytoolkit

Personal CLI toolkit — unified entry point for everyday file conversion, format wrangling, and project chores.

Install

make install                                  # install CLI + sync bundled agent skill
mytoolkit --version
mytoolkit templates list                      # verify bundled templates are found

make install 会同时:

  1. 用 editable 模式安装 mytoolkit
  2. 自动安装 zsh/bash 补全到当前 Python prefix 的共享目录;
  3. 把 bundled agent skill 同步到 ~/.agents/skills/mytoolkit/

补全由 mytoolkit 自己管理,无需手动写 ~/.local/bin/completions,也无需在 .zshrceval。首次运行任意 mytoolkit 命令时会自动补齐;也可以手动检查状态:

mytoolkit completion doctor
mytoolkit completion install   # 手动重装补全
mytoolkit completion zsh       # 打印 zsh 补全脚本

单独同步 skill(不重装 Python 包):

make sync-skill

Update

The installed Python package and the bundled Claude skill are not refreshed automatically when the source tree changes. After editing source files, skill docs, or after git pull / git submodule update, rerun:

make install            # or: mytoolkit update
mytoolkit --version     # verify the new version is active

If you only changed skill files (SKILL.md / references/), make sync-skill is enough.

Top-level commands

mytoolkit --help
Command What it does
convert Universal format conversion (md/img/pdf/eps/avi/bib → pdf/docx/tiff/mp4/md). Auto-detects from extensions.
init Initialize projects/kits from bundled templates (`mytoolkit init paper
info Show bundled resource paths (info paths, info docs <name>)
pdf compress / crop / merge / bookmark / to-tiff
image compress / eps-fix / eps-to-pdf / jpg-to-pdf / tiff-to-pdf / tiff-compress / generate (Doubao/Seedream)
latex compile / count
bib to-markdown / cv-update
video avi-to-mp4
voice Text-to-speech / speech-to-text via Volcengine/Doubao (voice tts, voice stt)
webpage Docusaurus build/list/rebuild/push
mail IMAP/SMTP client (read/draft/forward/reply, no auto-send)
templates Inspect template root; external override still possible
env Manage stored vars (api keys, paths, feishu app credentials)
ssh list / connect / tunnel / cmd
git proxy (start/stop/restart/status/set/unset/list/run)
server Manage dev/serve servers
update Reinstall from local repo
uninstall Uninstall
completion Install/inspect shell tab-completion scripts (install / uninstall / doctor / zsh / bash)

For any subcommand: mytoolkit <cmd> --help.

Templates

mytoolkit convert -t <name> reads templates bundled with the package by default. External overrides are still supported via mytoolkit templates register.

Bundled layout:

mytoolkit/templates/md-to-pdf/<name>/template.typ
mytoolkit/templates/md-to-docx/<name>/template.docx
mytoolkit templates list       # lists bundled templates with absolute paths
mytoolkit templates register /path/to/templates   # optional external override

Registry is stored at ~/.mytoolkit/templates.json (or $MYTOOLKIT_HOME/templates.json). When the registry is missing or invalid, mytoolkit falls back to the bundled templates.

Project scaffolds

mytoolkit init paper <dir>     # create a LaTeX paper project (Elsevier elsarticle, xelatex, fully portable)
mytoolkit init manual <dir>    # create a LaTeX manual project (technical/user docs, same style as md-to-pdf/manual)

init paper generates main.tex, Makefile, references.bib, diffpreamble.dtx, figs/. init manual generates main.tex (cover + TOC + callout boxes + code listing + three-line tables), Makefile, README.md.

Journal submission kits

mytoolkit init journal                # list available kits
mytoolkit init journal elsevier       # -> ./submit-elsevier/
mytoolkit init journal ieee mydir     # custom target dir

Kits (elsevier / ieee / springer) are self-contained — main.tex, a pdflatex+bibtex Makefile, and any non-bundled class files (Springer's sn-jnl.cls + bst/). Each compiles standalone with make, and reuses the current directory's references.bib if present.

User config

All user-level config lives under ~/.mytoolkit/ (override with $MYTOOLKIT_HOME):

File Owner Purpose
config.json mytoolkit env / mytoolkit mail config API keys, paths, mail/IMAP/SMTP, feishu credentials
templates.json mytoolkit templates Pointer to external template root

Manage env vars via the CLI — no need to hand-edit:

mytoolkit env list                       # show all (Storage path printed at top, secrets masked)
mytoolkit env get apikey_ark             # read one
mytoolkit env set apikey_ark <value>     # write one
mytoolkit env set apikey_ark --secret    # prompt for value, hidden input
mytoolkit env remove apikey_ark          # delete one
mytoolkit env export                     # print MYCLI_FOO=... export statements
eval "$(mytoolkit env export)"           # load into current shell

Legacy ~/.mytoolkit/env.json is auto-migrated into ~/.mytoolkit/config.json (keys.* format) on first load after upgrade.

Uninstall

mytoolkit uninstall
# or
make uninstall

User config under ~/.mytoolkit/ is left in place.

S
Description
mirror of github.com/apaam/mytoolkit (CI only)
Readme
1.4 MiB
Languages
BibTeX Style 56.8%
Python 31.6%
ObjectScript 6.4%
Typst 2%
TeX 1.7%
Other 1.5%