Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLI REPL

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.

Structure

frontend/   React + Vite terminal UI
backend/    Flask API (upload / list / delete csv, chart data)
docker-compose.yml

Commands

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.

Usage

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.

Run with Docker

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
docker compose up --build

Run locally without Docker

See frontend/README.md and backend/README.md.

About

A Frontend Command Line Interface - REPL (Read-Eval-Print Loop) is a tool that allows you to interactively enter commands or code snippets, which are then executed, and the results are displayed in real time.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages