culture-guide
Workshop and scaffolding CLI for practical AI efficiency: learn core AI concepts, build your first agents, create useful CLIs, and adopt agent-first development patterns
What you get
- 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 for that backend (this repo shipsbackend: colleague→AGENTS.colleague.md;claude→CLAUDE.md,acp→AGENTS.md,gemini→GEMINI.md). - 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.
- The named paradigm —
docs/culture.mdnames the culture every cloned agent inherits (agent-first CLI, cite-don't-import, learn→teach, the all-backends rule, converge-don't-vibe, …) and cites where each tenet is enforced. Addressable from the CLI:culture-guide explain culture.
Quickstart
uv sync
uv run pytest -n auto # run the test suite
uv run culture-guide whoami # identity from culture.yaml
uv run culture-guide 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.
Make it your own
- Rename the package
culture_guide/and theculture-guideCLI/dist name throughoutpyproject.toml, the package,tests/,sonar-project.properties, and thisREADME.md. The name is hard-coded in ~100 places, so list every occurrence first — see thegit grepdiscovery command inCLAUDE.md, the authoritative rename procedure. - 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).
Constant Colleague (Telegram responder)
A supervised, reset-surviving Telegram responder managed from the culture-guide CLI; it listens to a group and answers via an OpenAI/vLLM agent loop (strands-agents), colleague-swappable later.
Configure
Set these environment variables (via .env or your shell):
TELEGRAM_AGENT_BOT_TOKEN— your Telegram bot tokenCONSTANT_COLLEAGUE_CHAT_ID— the Telegram group/chat ID to listen onCOLLEAGUE_BASE_URL— OpenAI-compatible endpoint (defaulthttp://localhost:8001/v1)COLLEAGUE_MODEL— model name to useCONSTANT_COLLEAGUE_BOT_USERNAME— the bot's display usernameCONSTANT_COLLEAGUE_POLL_INTERVAL— seconds between getUpdates polls
Run
culture-guide listen start # install + enable systemd --user unit (survives reboot)
culture-guide listen status # is it live?
culture-guide listen stop
culture-guide listen restart
culture-guide listen logs # prints the journalctl --user command
How it works
Pipeline: telegram-agent (receive getUpdates + send) → relevance gate (tag-override bypass; else reranker B → chat A cascade on the lobes vLLM endpoint; A-only fallback) → strands-agents agent loop (the mind) → reply; per-chat memory via eidetic; supervised by a systemd --user unit with lingering so it resumes after a server reset.
This added two runtime deps (telegram-agent[telegram], strands-agents[openai]) — culture-guide is no longer zero-third-party-dep.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for agentculture-cli 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| agentculture_cli-0.10.0.tar.gz | 293.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentculture_cli-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 391.0 kB
Release files / agentculture_cli-0.10.0.tar.gz
| Download URL | agentculture_cli-0.10.0.tar.gz |
|---|---|
| Size | 293.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b65eb34c0bd4dc4a42a3cee53b827d6cb31a730cfbe0d7500e29896ce2d9b62a
|
|
BLAKE2b-256 checksum How to use checksums |
18969a9169d13e7372cce9ff407b0b533978cb000b27c606957d543926d690c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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 / agentculture_cli-0.10.0-py3-none-any.whl
| Download URL | agentculture_cli-0.10.0-py3-none-any.whl |
|---|---|
| Size | 98.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
95f9345570b7e32f1e7e3eff926d91374a8b8f70cd1d761d7e14bc9e1efafe8c
|
|
BLAKE2b-256 checksum How to use checksums |
d9d006b263186d23b96aea50d4097942467e5eaa66d6d5b0a105775c224f9045
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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}
|
Security for agentculture-cli 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.