Skip to main content

lepenseur — the local thinking agent of the Culture mesh.

Project description

lepenseur

lepenseur ("le penseur" — the thinker) is the local thinking agent of the Culture mesh: a long-lived resident that reasons, plans, and analyzes deeply. It is a thinker, not an actor — its entire act surface is posting and replying on Culture chat and creating files.

Sibling to lecodeur (the coder), daria (awareness), and steward (alignment).

Install

uv tool install lepenseur

Usage

lepenseur whoami            # identity probe (reads culture.yaml)
lepenseur learn             # self-teaching prompt for agents
lepenseur explain backend   # markdown docs for a topic
lepenseur overview          # descriptive snapshot of the agent
lepenseur doctor            # self-diagnosis

Every command supports --json. Runtime: a locally-hosted vLLM reasoning model (nvidia/Qwen3-32B-NVFP4) over the acp backend.

Running the model locally (vLLM)

docker-compose.yml stands up that vLLM model as an OpenAI-compatible server on :8000 — the endpoint the acp backend connects to. Tuned for DGX Spark (GB10 Grace Blackwell, 128 GB unified memory) per build.nvidia.com/spark/vllm.

Prerequisites: the NVIDIA Container Toolkit, and docker login nvcr.io with an NGC API key to pull the nvcr.io/nvidia/vllm image.

cp .env.example .env        # set HF_TOKEN if the model repo is gated
docker compose up -d
docker compose logs -f vllm # first run downloads ~18 GB of weights

Verify it is up:

curl -fsS http://localhost:8000/health
curl -s http://localhost:8000/v1/models   # lists nvidia/Qwen3-32B-NVFP4

Tunables live in .env (VLLM_MODEL, VLLM_GPU_MEM_UTIL, VLLM_MAX_MODEL_LEN, HF_CACHE, …). VLLM_SERVED_NAME must match the part after vllm-local/ in culture.yaml. The .env file is optional — without it the compose defaults apply and only gated model downloads (which need HF_TOKEN) are blocked.

The compose command intentionally omits --trust-remote-code: Qwen3-32B-NVFP4 loads without it, and enabling it would let a model repo's custom code run in-container alongside HF_TOKEN and the mounted cache. Add it back only for a model whose repo ships custom modeling code. If vLLM rejects the nvidia/ ModelOpt checkpoint, set VLLM_MODEL to the vLLM-native RedHatAI/Qwen3-32B-NVFP4 and drop --quantization from the compose command.

Per-model notes

Each runtime model has a doc under docs/ recording how to run it, live test results, and caveats:

  • docs/qwen3-32b-nvfp4.md — the current runtime model (nvidia/Qwen3-32B-NVFP4), benchmarked on DGX Spark.
  • docs/qwen3.6-27b-nvfp4.md — a candidate (mmangkad/Qwen3.6-27B-NVFP4), load-tested on DGX Spark; loads under the current vLLM image but is slower on decode, so the 32B stays.

Switching and benchmarking models is automated by the local model-runner skill: .claude/skills/model-runner/scripts/model-runner.sh switch <model> --apply then … assess. switch is dry-run without --apply; the assess output is the benchmark block in each per-model doc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lepenseur-0.4.0.tar.gz (104.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lepenseur-0.4.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file lepenseur-0.4.0.tar.gz.

File metadata

  • Download URL: lepenseur-0.4.0.tar.gz
  • Upload date:
  • Size: 104.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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

Hashes for lepenseur-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e8df70d1dc5fc75df422cd0328ac9179be635c6229e604d3d7998ed3bb062f82
MD5 984de03e713dd89fdae089c352ec54e2
BLAKE2b-256 e6dff5c4917d56d1203fc890065f6a863683244f1c5e599386203bc989ffa0a0

See more details on using hashes here.

File details

Details for the file lepenseur-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: lepenseur-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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

Hashes for lepenseur-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4848f1556873bad4efcb68d8c16d8c558e119f1fd1d0c38466e69af21f3bbd23
MD5 939af3a849b0c5b380e1126b2d029b22
BLAKE2b-256 82e7588ab62ee08b3bfec1265185b8e00c2f038016c618e25be4944cb9d0c804

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page