jetson-ai-lab-cli
Discord-facing knowledge fetch & index agent for the Jetson AI Lab community — fetches and indexes Jetson AI Lab docs/sources and answers members' questions on Discord.
Status: the read side is real, the rest is still scaffold. The agent can scan the Jetson AI Lab Discord read-only today (see below); indexing what it reads and answering members' questions are not built yet.
What you get
- A read-only Jetson AI Lab Discord scanner — the
jetson-discord-scanskill, the first slice of the agent's actual job. See Jetson AI Lab Discord. - An agent-first CLI cited from teken
(
afi-cli) — the runtime package has no third-party dependencies. - A mesh identity —
culture.yaml(suffix+backend) and the matching prompt file (CLAUDE.mdforbackend: claude). - The canonical guildmaster skill kit (11 skills) under
.claude/skills/, vendored cite-don't-import. Seedocs/skill-sources.md. - A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.
Quickstart
uv sync
uv run pytest -n auto # run the test suite
uv run jetson-ai-lab-cli whoami # identity from culture.yaml
uv run jetson-ai-lab-cli learn # self-teaching prompt (add --json)
uv run teken cli doctor . --strict # the agent-first rubric gate CI runs
CLI
| Verb | What it does |
|---|---|
whoami |
Report this agent's nick, version, backend, and model from culture.yaml. |
learn |
Print a structured self-teaching prompt. |
explain <path> |
Markdown docs for any noun/verb path. |
overview |
Read-only descriptive snapshot of the agent. |
doctor |
Check the agent-identity invariants (prompt-file-present, backend-consistency). |
cli overview |
Describe the CLI surface itself. |
Every command supports --json. Results go to stdout, errors/diagnostics to
stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment
error, 3+ reserved.
Jetson AI Lab Discord (read-only)
The agent's intended job starts at the Jetson AI Lab Research Group Discord — a hands-on community running modern AI on NVIDIA edge hardware. At a glance:
The jetson-discord-scan skill
gives it a read-only window into that server. It wraps the read verbs of the
sibling discord-bot-cli —
it never posts, reacts, or creates threads — and it scans public channels
only (private / role-gated channels are always excluded).
S=.claude/skills/jetson-discord-scan/scripts/scan.sh
bash $S doctor # token present + guild readable?
bash $S active --since 30 --top 15 # public channels active in the last month, by traffic
bash $S channels # public channel map (each tagged "public": true)
bash $S read <channel_id> --limit 50 # recent messages of one channel
Needs a read-scoped bot token in DISCORD_BOT_TOKEN and discord-bot-cli
with its [discord] extra. Results are JSON on stdout; errors/diagnostics on
stderr.
Member participation statistics (jlab discord members)
jlab discord members # last 90 days, public text channels
jlab discord members --since 30 # narrower window
jlab discord members --json # same statistics, id-only, on stdout
This scans the same public text channels and writes an HTML report — message counts, breadth across channels, thread/question starts, and length-based substance signals per participant — to a fixed path inside this repo, printing that path when it's done.
Expect it to take about five minutes. Measured against the Jetson AI Lab
guild (100 public text channels, 90-day window): ~15s to scan and page the
channels, then ~4m45s to resolve author ids to names — one fetch_member call
per distinct author, 869 of them, at ~330ms each. Name resolution is ~95% of
the runtime; a batch resolution verb is filed upstream as
agentculture/discord-bot-cli#14
and would cut the run to well under a minute. --since 30 is proportionally
faster because it finds fewer distinct authors. It issues no verdict: the CLI does not rank,
score, or label anyone "most active," and it produces no presenter shortlist —
it organizes statistics so a Channel Maintainer (or an agent) can read the
report and make that judgment themselves.
The pipeline is anonymous end to end until the very last step: messages are
aggregated by author.id only, message content never survives past the
aggregation stage (only lengths and counts do), and display names are resolved
from ids in one batch, solely to render the report — --json output stays
id-only. Bots and webhooks are excluded; members who have left the guild are
excluded by default (a flag can include everyone). Voice channels are
deliberately out of scope — a member who only attends voice sessions won't show
up in this report — and forum channels/threads are a possible follow-up, not
covered yet. The generated report is gitignored and never committed; it's a
local artifact you hand to a maintainer, not a checked-in file.
Make it your own
- Rename the package
jlab/and thejetson-ai-lab-cliCLI/dist name throughoutpyproject.toml, the package,tests/, andsonar-project.properties. - Edit
culture.yamlwith yoursuffixandbackend. - Rewrite
CLAUDE.mdfor your agent and run/init. - Re-vendor only the skills you need from guildmaster (see
docs/skill-sources.md).
See CLAUDE.md for the full conventions (version-bump-every-PR,
the cicd PR lane, deploy setup).
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jetson_ai_lab-0.6.0.tar.gz.
File metadata
- Download URL: jetson_ai_lab-0.6.0.tar.gz
- Upload date:
- Size: 313.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd1be5c101aca817aa9b368f681a4e196c44c4674ce8905ab943e2b007909fbc
|
|
| MD5 |
91d9289e3b3f939b7ff43a7f56acd16a
|
|
| BLAKE2b-256 |
81629d0793228e64e374847cfd3a2f9a9243e5334e5c2473bc374027bf43f2cf
|
File details
Details for the file jetson_ai_lab-0.6.0-py3-none-any.whl.
File metadata
- Download URL: jetson_ai_lab-0.6.0-py3-none-any.whl
- Upload date:
- Size: 47.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5600dd5f0473968246308b170341fa126c4a96d191c214bf1bb37ade3f4c652f
|
|
| MD5 |
8aba709a876ac711c528cc63e141f8f9
|
|
| BLAKE2b-256 |
432c4e9bc6d763388a5792d912fb9f54ee26e686e4395049a7c901d809aff44f
|