forge-studio
Web UI for ForgeEngine. FastAPI backend with a React frontend -- chat with Qwen3.6 reasoning models, ingest repos, toggle thinking mode, view token budget.
Install
pip install -e ".[dev]"
cd frontend && npm install && npm run build && cd ..
Run
# Set your inference backend
export FORGE_MODEL=Qwen3.6-27B
export FORGE_BASE_URL=http://localhost:8000/v1
# Start the server (binds to 127.0.0.1 by default)
forge-studio --port 8400
Open http://localhost:8400 in your browser.
Development mode
Run backend and frontend separately for hot reloading:
# Terminal 1: backend with auto-reload
forge-studio --port 8400 --dev
# Terminal 2: frontend dev server (proxies API to backend)
cd frontend && npm run dev
The Vite dev server runs on port 5173 and proxies /api requests to the backend on port 8400.
Configuration
Environment variables:
| Variable | Default | Description |
|---|---|---|
| FORGE_MODEL | Qwen3.6-27B | Model name |
| FORGE_BASE_URL | http://localhost:8000/v1 | Inference API endpoint |
| FORGE_API_KEY | EMPTY | API key for the endpoint |
| FORGE_BACKEND | (auto) | Backend type: vllm, sglang, dashscope |
| FORGE_GPU_ID | (none) | GPU ID for MTP recommendation |
API
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/chat | Non-streaming chat |
| WS | /api/chat/stream | Streaming chat via WebSocket |
| GET | /api/status | Engine status and budget info |
| GET | /api/messages | Conversation history |
| POST | /api/ingest | Ingest a git repository |
| POST | /api/ingest-local | Ingest a local repo path |
| GET | /api/mtp | MTP recommendation |
| POST | /api/thinking-mode | Set thinking mode (think/no_think) |
| POST | /api/backend | Switch backend type |
Tests
pytest -x -q
License
Apache 2.0
Metadata
Release files for forge-studio 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| forge_studio-0.1.0.tar.gz | 47.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_studio-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.5 kB
Release files / forge_studio-0.1.0.tar.gz
| Download URL | forge_studio-0.1.0.tar.gz |
|---|---|
| Size | 47.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b73635ce9ba77bd70d7c2074f65207215f0c59a996c9414aee608629d036b599
|
|
BLAKE2b-256 checksum How to use checksums |
01b48b32f5bc24ec2e43ba9a6c75eae8489d72490a1b5062212d34ad9df0d579
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 2, 2026.
Transparency logRelease files / forge_studio-0.1.0-py3-none-any.whl
| Download URL | forge_studio-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6597b738febb5e7ede0da44fb0c2a6fb721f00e62e3468d62bc954a1ab58e926
|
|
BLAKE2b-256 checksum How to use checksums |
c7bfbc2d362ad1a16db270cb4ca8b7b428b1499ccc1a2e64374afdbacb178659
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 2, 2026.
Transparency log