5.5 KiB
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 会同时:
- 用 editable 模式安装
mytoolkit; - 自动安装 zsh/bash 补全到当前 Python prefix 的共享目录;
- 把 bundled agent skill 同步到
~/.agents/skills/mytoolkit/。
补全由 mytoolkit 自己管理,无需手动写 ~/.local/bin/completions,也无需在 .zshrc 里 eval。首次运行任意 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 (set/unset/list/status) |
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.