RAWR Dashboard — bento module board for journal, P&L, and indicators.
Project description
rawr-dashboard
A RAWR plugin that adds a local bento-board web UI for trade journalling, portfolio reviews, P&L tracking, and indicator tiles — plus MCP tools so an AI agent can write to the journal directly.
Install
pip install rawr-dashboard
The package bundles the pre-built SPA (no Node.js needed at runtime).
Usage
Serve the dashboard
rawr dashboard serve # opens http://127.0.0.1:8800/ in your browser
rawr dashboard serve --port 9000 --no-open
Import KIS executions
rawr dashboard sync # idempotent — safe to run repeatedly
한국 시장 관찰 모니터
rawr dashboard monitor는 한국 주식/ETF 시장을 로컬에서 관찰하고 후보와 주문 프리뷰를 저장하는 preview-only 기능입니다. 이 기능은 실주문을 제출하지 않습니다.
rawr dashboard monitor doctor
rawr dashboard monitor run-once
rawr dashboard monitor start --interval-minutes 10
rawr dashboard monitor status
rawr dashboard monitor stop
- 기본 주기는 10분입니다.
- 허용 주기는 5-15분입니다.
- 후보별 주문 프리뷰는
preview_only=true,live_order_submitted=false를 포함합니다. - 웹 대시보드는
rawr dashboard serve로 실행합니다. - 실거래 검토는 기존 RAWR order preview와 policy gate를 별도로 거쳐야 합니다.
Dev flow
The SPA source lives under apps/dashboard/ (Vite + React). To rebuild it:
pnpm --dir apps/dashboard build # writes to src/rawr_dashboard/web/static/
To rebuild the Python wheel with the fresh SPA:
python -m build --wheel packages/rawr-dashboard
Always build the SPA first. The wheel force-includes whatever is in
web/static/; if you skip thepnpm buildstep the wheel ships without a UI andrawr dashboard servereturns 404 at/.
Data model
| Layer | File | Purpose |
|---|---|---|
| Models | models.py |
JournalEntry, Annotation, CalendarItem (Pydantic) |
| Core | core/journal.py |
JournalService — create/close entry, upsert annotation |
| Core | core/reviews.py |
ReviewService — store portfolio reviews in RAWR memory events |
| Core | core/sync.py |
KisSyncService — import KIS executions (idempotent) |
| Core | core/board.py |
BoardService — module/board layout CRUD |
| Web | web/app.py |
FastAPI app factory |
| Web | web/deps.py |
get_db() — shared RawrDB instance |
| CLI | cli.py |
dashboard Click group; get_cli_plugin(), get_mcp_plugin() |
Built-in review workflow
The default board includes:
portfolio_reviews— writes recurring portfolio reviews to RAWRmemory_events.trade_entry— records manual buy/sell journal entries to the sharedjournaltable.
API endpoints:
GET /api/reviews
POST /api/reviews
GET /api/journal
POST /api/journal
MCP tools (agent write access)
When RAWR's MCP server is running, an AI agent can call these tools:
dashboard_record_trade
Record a new open trade in the journal.
| Parameter | Type | Description |
|---|---|---|
code |
str |
Ticker symbol |
name |
str |
Company / asset name |
side |
str |
"buy" or "sell" |
qty |
int |
Quantity |
entry_price |
float |
Entry price |
reason |
str |
Trade rationale (optional) |
strategy |
str |
Strategy tag (optional) |
currency |
str |
Default "KRW" |
Returns {"journal_id": int, "status": "open"}.
dashboard_close_trade
Close an open journal entry with its realized outcome.
| Parameter | Type | Description |
|---|---|---|
journal_id |
int |
ID returned by dashboard_record_trade |
exit_price |
float |
Exit price |
outcome_pnl |
float |
Realized P&L |
outcome_pct |
float |
Return % |
Returns {"journal_id": int, "updated": bool, "status": "closed" | "not_found"} — updated is false (status "not_found") when no entry matched the id.
dashboard_annotate_trade
Attach a reflection note to a trade entry.
| Parameter | Type | Description |
|---|---|---|
journal_id |
int |
Target entry |
tags |
list[str] |
Freeform tags (optional) |
confidence |
int |
Conviction level 1–5 (optional) |
emotion |
str |
Emotional state note (optional) |
discipline_checklist |
dict |
Key→bool checklist (optional) |
mistakes |
str |
Post-trade mistake notes (optional) |
Returns {"journal_id": int, "annotated": true}.
dashboard_sync_kis
Pull KIS executions into the journal (idempotent).
Returns {"created": int, "skipped": int}.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rawr_dashboard-0.1.0.tar.gz.
File metadata
- Download URL: rawr_dashboard-0.1.0.tar.gz
- Upload date:
- Size: 128.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
226fc31134fc7345757620f310fa66cb4bfe740ecd5bf7d2ce26d6b0c0d3a13f
|
|
| MD5 |
2081dac95060da7cbff923dcda2345da
|
|
| BLAKE2b-256 |
d6fdc2cbd9aae12ada53f84e43470d734fb3b09e56b1bda3680fc164c6ae96d9
|
Provenance
The following attestation bundles were made for rawr_dashboard-0.1.0.tar.gz:
Publisher:
release-dashboard.yml on snowjang24/rawr-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rawr_dashboard-0.1.0.tar.gz -
Subject digest:
226fc31134fc7345757620f310fa66cb4bfe740ecd5bf7d2ce26d6b0c0d3a13f - Sigstore transparency entry: 1789673920
- Sigstore integration time:
-
Permalink:
snowjang24/rawr-tools@c2daf5710c355640c94c58419faf49434c86574f -
Branch / Tag:
refs/tags/rawr-dashboard-v0.1.0 - Owner: https://github.com/snowjang24
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-dashboard.yml@c2daf5710c355640c94c58419faf49434c86574f -
Trigger Event:
push
-
Statement type:
File details
Details for the file rawr_dashboard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rawr_dashboard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 123.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f281d425e7f03f43d1762cfd688fc854b4f576a6bdf78b4745e5fd5bab4b0b0
|
|
| MD5 |
b43f9edc19a925cc1a7bf543bb8188d5
|
|
| BLAKE2b-256 |
ad5c1b969fc4d2bc80728065571b624bc2bad4b50607e29891a52e2a7df6a172
|
Provenance
The following attestation bundles were made for rawr_dashboard-0.1.0-py3-none-any.whl:
Publisher:
release-dashboard.yml on snowjang24/rawr-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rawr_dashboard-0.1.0-py3-none-any.whl -
Subject digest:
8f281d425e7f03f43d1762cfd688fc854b4f576a6bdf78b4745e5fd5bab4b0b0 - Sigstore transparency entry: 1789674198
- Sigstore integration time:
-
Permalink:
snowjang24/rawr-tools@c2daf5710c355640c94c58419faf49434c86574f -
Branch / Tag:
refs/tags/rawr-dashboard-v0.1.0 - Owner: https://github.com/snowjang24
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-dashboard.yml@c2daf5710c355640c94c58419faf49434c86574f -
Trigger Event:
push
-
Statement type: