Skip to main content

ambot-inlinectl

AmritaBot 内联管理工具 — 在项目目录内通过 ambot 命令行管理 AmritaBot 的插件、数据库和运行。

安装

pip install ambot-inlinectl

使用

ambot <命令>

列出当前所有可用子命令及其来源:

ambot cmds

命令

ambot run

启动 bot。

ambot run

ambot run_in_sub

在子进程中启动 bot(等效于 ambot run,但通过新进程运行)。

ambot run_in_sub
ambot run-in-sub   # 下划线与连字符可互换

ambot nb <参数...>

透传调用 nb-cli。自动加载 Amrita 框架后再执行原生命令。

ambot nb --help
ambot nb plugin list

ambot orm <参数...>

透传调用 nonebot-plugin-orm CLI。自动加载 Amrita 框架和 ORM 插件后执行。

ambot orm upgrade
ambot orm migrate

ambot plugin list

嗅探环境中所有已安装的插件:

  • amrita_plugin_* — pip 安装的 Amrita 插件
  • nonebot_plugin_* — pip 安装的 NoneBot 插件
  • plugins/ 目录 — 本地 Amrita 插件
  • src/plugins/ 目录 — 本地 NoneBot 插件
ambot plugin list

ambot plugin add <包名>

安装插件并注册到 pyproject.toml 的 [tool.amrita.plugins]:

  • 调用 uv add 安装包
  • 将包名追加到 [tool.amrita.plugins] 列表
ambot plugin add nonebot_plugin_orm
ambot plugin add amrita_plugin_example

ambot plugin remove <包名>

卸载插件并从 [tool.amrita.plugins] 移除:

  • 调用 uv remove 卸载包
  • 将包名从 [tool.amrita.plugins] 列表中移除
ambot plugin remove nonebot_plugin_orm

注册子命令

ambot 的根命令是惰性解析的,第三方包可以往里挂自己的子命令,挂上之后直接 ambot <你的命令> 即可,无需修改本仓库。

方式一:entry point(推荐,跨包)

在插件包的 pyproject.toml 里声明:

[project.entry-points."ambot.commands"]
doctor = "my_pkg.cli:doctor"

doctor 即命令名。指向的对象可以是:

  • 一个 click.Command(click.Group 亦可)
  • 一个零参可调用对象,返回 click.Command、命令序列,或 None (返回 None 表示它已自行调用 register_command())

单个 entry point 对应单个命令时,命令名以 entry point 名为准;返回多个命令时, 各自使用命令自身的名称。

方式二:进程内注册

import click
from ambot_inlinectl import command, register_command


@command("doctor")
def doctor():
    """Check project health."""
    click.echo("ok")


# 等价写法
register_command(click.Command("doctor", callback=doctor))

要覆盖 ambot 自带命令(如 run)时需显式声明,否则自带命令优先命中:

@command("run", replace=True)
def my_run():
    ...

重复注册同名命令会抛 ValueError(显式传空名称同样报错);加载失败的 entry point 只会告警并跳过,不影响其余命令。两个 entry point 声明了同一个 命令名时,按 (名称, 目标) 排序取先出现的一个并告警,结果不依赖安装顺序。

用 unregister_command() 注销后,被它覆盖的自带命令会恢复。

pyproject.toml 配置

ambot plugin add/remove 会自动维护 [tool.amrita.plugins] 列表,供 amrita.load_plugins() 在启动时读取:

[tool.amrita]
plugins = [
]

许可证

MIT

Release files for ambot_inlinectl 0.2.0.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ambot_inlinectl 0.2.0.post1
File Size Uploaded
ambot_inlinectl-0.2.0.post1.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ambot_inlinectl 0.2.0.post1
File Interpreter ABI Platform
ambot_inlinectl-0.2.0.post1-py3-none-any.whl Python 3 none any Details

Total release size: 24.3 kB

Release files / ambot_inlinectl-0.2.0.post1.tar.gz

Download URL ambot_inlinectl-0.2.0.post1.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4d64432f66b0dad92e8eea2acacca147b50b75d1b01dfdc29caa89e0ac7b7d7c
BLAKE2b-256 checksum
How to use checksums
a15d76c58608f7dd301c23a85000e63716baec80a06a4e9ddbabc729ebd07f81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ambot_inlinectl-0.2.0.post1-py3-none-any.whl

Download URL ambot_inlinectl-0.2.0.post1-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
74f71b5984b96d01adf61b189d6d8e26a01314e5a31ff02707e374ed084b6a8a
BLAKE2b-256 checksum
How to use checksums
d026266efadd39c5300482474ee2cc9a954f8c2f19fb7c2f44e0a18bc689000e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.2.1

2 release files

This release

0.2.0.post1 This release

2 release files

0.2.0

1 release file

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page