Skip to content

Improve README clarity and visuals - #25

Merged
nishantmodak merged 3 commits into
masterfrom
agent/readme-clarity
Jul 27, 2026
Merged

Improve README clarity and visuals#25
nishantmodak merged 3 commits into
masterfrom
agent/readme-clarity

Conversation

@nishantmodak

Copy link
Copy Markdown
Member

What changed

  • reorganized the README around a clearer value proposition and quicker first-run path
  • added a theme-aware project header, status badges, capability overview, and Mermaid architecture flow
  • documented the Control Room with a real screenshot using explicitly labeled illustrative local data
  • clarified skill creation, Human MCP approval policies, minimal configuration, and links to deeper documentation
  • retained compact advanced references for AWS Bedrock configuration and the full top-level CLI command map
  • condensed detailed material that is better maintained in the documentation site

Why

The previous README mixed first-run guidance with detailed configuration and feature internals. This update makes the primary path easier to scan while keeping Bedrock and CLI information discoverable for advanced users.

User impact

New users get a shorter path from installation to a working agent. Existing users can still find provider setup, CLI entry points, advanced capabilities, and detailed documentation without searching the source tree.

Validation

  • git diff --check
  • validated all 13 local README links, anchors, and assets
  • verified the Control Room asset is a valid 1665×925 JPEG
  • verified the documented top-level commands against uv run mithai --help

@nishantmodak
nishantmodak marked this pull request as ready for review July 27, 2026 22:44
@nishantmodak
nishantmodak merged commit a78c49d into master Jul 27, 2026
5 checks passed
@nishantmodak
nishantmodak deleted the agent/readme-clarity branch July 27, 2026 22:45

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 27a5c8f18e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
Comment on lines +3 to +5
<source media="(prefers-color-scheme: dark)" srcset="docs-site/src/assets/logo-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="docs-site/src/assets/logo-light.svg">
<img alt="mithai" src="docs-site/src/assets/logo-light.svg" width="220">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use absolute URLs for README images

When this README is published as the PyPI long description (pyproject.toml declares it as the project readme), these relative srcset/src values resolve under the PyPI project URL rather than the GitHub repository, so the logo is broken there; the new relative Control Room screenshot has the same problem. Use absolute raw GitHub URLs (ideally versioned) for assets that must render on both GitHub and PyPI.

Useful? React with 👍 / 👎.

Comment thread README.md
Comment on lines +157 to +158
with urlopen(input["url"], timeout=10) as response:
return json.dumps({"status": response.status, "healthy": response.status < 500})

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Handle HTTP error statuses in the sample tool

When an endpoint returns a 4xx or 5xx response, urllib.request.urlopen raises HTTPError before this block can return the status, and the tool router consequently converts it into a generic error result. Users copying the example therefore cannot report status codes for unhealthy endpoints as the accompanying skill instructions promise; catch HTTPError and return its code as an unhealthy result (and classify normal success consistently).

Useful? React with 👍 / 👎.

Comment thread README.md

## Control Room

Control Room is a small web UI included with mithai. It reads from the agent's existing state and memory, so there isn't another store to configure. Use it to look through sessions, pending approvals, memory, loaded skills and the current config.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid advertising live pending approvals

Control Room cannot currently show approval requests that are awaiting a human: its approvals data only reads approvals.json, which is updated after the adapter returns a decision, while active requests remain solely in the adapter's in-memory pending map. The UI's “Pending” view means commands pending auto-promotion, not pending human decisions, so operators relying on this description will not find outstanding requests; change the wording or expose the live requests to the UI.

Useful? React with 👍 / 👎.

Comment thread README.md

<p align="center"><sub>The screenshot uses made-up local session and approval data.</sub></p>

It binds to localhost by default. Set `ui.auth_token` before exposing it anywhere else. The options are in the [configuration reference](docs/configuration.md).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document that authentication changes the bind address

When ui.auth_token is set to a real value and neither ui.host nor --host is supplied, mithai ui changes its default from 127.0.0.1 to 0.0.0.0. A reader following this sentence can therefore set the recommended token and unintentionally make Control Room reachable on every interface while still expecting a localhost bind; explicitly document this behavior or tell users to keep ui.host: 127.0.0.1 unless public binding is intended.

Useful? React with 👍 / 👎.

Comment thread README.md
Comment on lines +192 to +199
You can tighten those rules in `config.yaml` without editing the skill:

```yaml
human:
timeout_seconds: 300
overrides:
shell__run_command: confirm # escalate
kubernetes__get_pods: null # keep read-only pod listing auto-executed
shell__run_command: confirm
kubernetes__get_pods: null

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Explain that null disables an approval requirement

When a user sets an override to null, HumanMCP.resolve_level treats the key's presence as an explicit de-escalation and auto-executes the tool; it does not fall back to the policy declared by the skill. Introducing null in an example described only as tightening rules, without explaining this behavior, can cause users to disable protection on a risky tool if they reuse the pattern expecting “no override”; document the de-escalation semantics or omit it from this example.

Useful? React with 👍 / 👎.

Comment thread README.md

## Control Room

Control Room is a small web UI included with mithai. It reads from the agent's existing state and memory, so there isn't another store to configure. Use it to look through sessions, pending approvals, memory, loaded skills and the current config.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Scope Control Room data to the selected agent

In a multi-agent project, mithai ui constructs ControlRoomData from the global config, so it ignores each agent's memory.path and skill allowlist: the Memory view reads the global/default memory and the Skills view lists every discovered skill rather than the skills loaded by a particular agent. Since the README also advertises agents with independent memory and skills, this description is incorrect for that supported mode; either document Control Room as single-agent-only or add agent selection and build its data sources from the chosen agent configuration.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant