Topics: [the-framework]
GitHub: [#312](https://github.com/gemstack-land/the-framework/issues/312)

# CLI

## TLDR

Define what running `$ framework` does. Already done: ensure the localhost dashboard background process is running, and print the list of convenience commands (`framework run [prompt]`, `framework logs`, …). Still open: run background jobs (#298), and print the CLI version — with an async up-to-date check via `npm info`, auto-update, and an `(✅ auto-update enabled)` label if trivial.

## Why it matters

`$ framework` is the single entry point to the whole system; it should reliably bring up the dashboard/daemon and stay current on its own (auto-update) so users never manage the tool itself. The body is explicitly long-term brainstorming — only the MVP-relevant parts should be implemented.

## Source

Imported from GitHub issue [gemstack-land/the-framework#312](https://github.com/gemstack-land/the-framework/issues/312), created 2026-07-10, label: `the-framework ♻️`.

### Original description

> [!NOTE]
> This includes brainstorming ideas (long-term vision). **A lot is out-of-scope for the MVP:** we can only implement the MVP-relevant parts.

I suggest that running `$ framework` does the following:
- [x] Ensure The background process that runs the localhost dashboard (e.g. `localhost:4200`) is running
- [ ] Runs [background jobs](https://github.com/gemstack-land/gemstack/issues/298)
- [x] Prints the list of commands (just convenience commands like `framework run [prompt]`, `framework logs`, ... — not important since the UI already implements all features)
- [ ] Prints the CLI version
  - [Only if trivial to implement] Show whether the version is up-to-date (by using `$ npm info`).
    - Should be async (show static info first, then await npm server and show "up-to-date" label)
    - The CLI regularly auto-updates itself
    - Also show `(✅ auto-update enabled)`.
