A front-end command-line REPL (Read-Eval-Print Loop) with a UI modeled after Warp Terminal: a macOS-style title bar, multi-session tabs, and Warp-style command "blocks" with hover actions and copy-to-clipboard. Built with React + Vite + Tailwind CSS + shadcn/ui + lucide-react on the frontend and Flask on the backend.
frontend/ React + Vite terminal UI
backend/ Flask API (upload / list / delete csv, chart data)
docker-compose.yml
| Command | Description |
|---|---|
help |
Show available commands |
about |
Display information about this CLI |
fetch-price [pair] |
Fetch the current price of a trading pair, e.g. fetch-price BTCUSDT |
upload |
Upload a .csv or .xlsx file |
draw [file.csv|file.xlsx] [col1] [col2] ... |
Draw a line chart from columns in an uploaded file |
delete [file.csv|file.xlsx] |
Delete an uploaded file |
clear |
Clear the terminal (also bound to Ctrl+L) |
Use ↑ / ↓ to move through command history within a tab. Each tab is an independent terminal session.
A sample dataset is included at samples/solana-historical-data.xlsx (columns: Date, Price, Open, High, Low, Vol., Change %). The upload command accepts both .csv and .xlsx (validated on both the frontend and the backend), so this file can be uploaded as-is. A copy of it (plus a .csv version) is also pre-seeded in backend/draw-chart/, so draw/delete work against it immediately without uploading anything first.
help
> help
Lists every command below with its usage and description.
about
> about
Prints the CLI name/version and a short blurb.
fetch-price [pair]
> fetch-price BTCUSDT
Fetches the live average price for the given Binance trading pair (e.g. BTCUSDT, ETHUSDT) directly from Binance's public API.
upload
> upload
Opens a file picker restricted to .csv/.xlsx. Browse to samples/solana-historical-data.xlsx in the picker and click Upload — it's sent to the backend and saved under backend/draw-chart/, with the filename sanitized (lowercased, spaces → dashes). Once uploaded, it's usable by draw/delete under that saved name.
draw [file.csv|file.xlsx] [col1] [col2] ...
> draw
draw solana-historical-data.xlsx Price Open High Low
Type draw and press Enter to open the sub-prompt, then type the full command with a filename already on the server plus one or more of its columns; renders a multi-line chart of those columns. Works immediately against the bundled sample above, no upload needed.
delete [file.csv|file.xlsx]
> delete
delete solana-historical-data.xlsx
Type delete and press Enter to open the sub-prompt, then type the full command with the filename to remove it from backend/draw-chart/.
clear
> clear
Clears the active tab's screen (also bound to Ctrl+L). Each tab keeps its own independent history, so clearing one tab doesn't affect the others.
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
docker compose up --build- Frontend: http://localhost:3000
- Backend: http://localhost:8088
See frontend/README.md and backend/README.md.