You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every user-facing config option today requires hand-editing ~/.config/basic-memory/config.json or knowing the BASIC_MEMORY_* env-var naming convention. There is no CLI surface for configuration at all — the immediate trigger was cli_output_style (#967): the answer to "how do I default to plain output?" is "open a JSON file in an editor."
This also hurts agents and support: docs and issue replies have to explain JSON editing instead of giving a one-line command.
Proposal
A bm config command group:
bm config list # all settings with current values, env overrides marked
bm config get cli_output_style
bm config set cli_output_style plain
bm config unset cli_output_style # revert to default
Design notes:
Validate through the model: set should round-trip through BasicMemoryConfig so invalid values fail with the Pydantic error (e.g. cli_output_style only accepts rich|plain), not get written blindly.
Show effective values: get/list should surface when an env var is overriding the file value, since that is a classic support footgun.
Guardrails: refuse (or require a flag) to set complex/structured fields like projects — those have dedicated commands. A small allowlist of scalar user-facing settings is fine for v1.
Atomic writes: reuse the atomic config write path (b3bdd59 made config.json writes atomic).
Problem
Every user-facing config option today requires hand-editing
~/.config/basic-memory/config.jsonor knowing theBASIC_MEMORY_*env-var naming convention. There is no CLI surface for configuration at all — the immediate trigger wascli_output_style(#967): the answer to "how do I default to plain output?" is "open a JSON file in an editor."This also hurts agents and support: docs and issue replies have to explain JSON editing instead of giving a one-line command.
Proposal
A
bm configcommand group:Design notes:
setshould round-trip throughBasicMemoryConfigso invalid values fail with the Pydantic error (e.g.cli_output_styleonly acceptsrich|plain), not get written blindly.get/listshould surface when an env var is overriding the file value, since that is a classic support footgun.projects— those have dedicated commands. A small allowlist of scalar user-facing settings is fine for v1.bm config listoverlaps nicely with the feat(mcp): add basic_memory_diagnostics tool for version and system info #963 diagnostics tool (same redaction rules should apply: never printcloud_api_key, maskdatabase_urlcredentials).Related
bm configshould land with names that match wherever Normalize the CLI / MCP tool argument surface for v1.0 #977 settles, and a config command makes deprecation messaging easier ("set X instead").cli_output_style, the motivating setting.🤖 Generated with Claude Code