From setup
to verified UI.
English getting-started guide. Start with your existing project.
Work with OSCODE in your browser
Use the real CLI agent through a browser chat with conversations, a fixed composer, streamed responses, copying, cancellation and tool activity. Use Node.js 22 or later and run from your project folder.
npx @choijinwon/oscode@0.19.0 --web
# No-key demo: reads the actual project file list
npx @choijinwon/oscode@0.19.0 --web --demoAdd --cwd /path/to/project to choose a project. Keep the terminal running and open the printed local address. Existing model settings and credentials are reused; API keys are not sent to the browser. The demo does not call a coding model.
Enter sends; Shift+Enter inserts a newline. Submit the next request while work is running to queue it. Create and switch between up to eight conversations.
Tasks, approvals, scheduling and IDs
| Feature | How to use it |
|---|---|
| Task list | Open the task list and filter all tasks, approval requests, upcoming/queued tasks, or finished tasks. |
| Approval | Approve or reject individual file changes and commands. Review approved, rejected and expired requests per task. |
| Upcoming | Choose a date and time above the composer, or queue the next request while another is running. Cancel pending tasks when needed. |
| ID | Every request receives an OSC-… ID. Copy it or navigate to its conversation. |
One task runs at a time in the project. A scheduled time is the earliest possible start; previous work or approvals may delay it. A completed response means the agent turn ended, not that the business outcome or artifact quality is verified.
Task detail timeline
Open a task's detail view. Select a tool step on the left to inspect its real input, approval-time change preview, output and elapsed time on the right. Timing includes approval waits. The most recent 100 tool records per conversation are retained. Press Escape to close.
Live browser view and control
- Open the live browser from the left rail and enter your development page URL.
- Watch an isolated Chromium page refresh approximately once a second. In manual mode, click, scroll, send text through the bottom input, or send supported keys.
- Hand control to the agent to lock manual controls. Request browser work in chat and review each action's approval request.
- Take manual control back, or use Stop to close the browser. A linked agent task also receives a cancellation request.
npx playwright install chromiumInstall Chromium if startup reports it missing. Closing the panel only hides it; Stop ends the browser. Return to chat to review approvals. A browser action already in progress may finish during a handover.
The isolated browser does not share your personal cookies or login. Currently supports one 1280×800 tab. Popups, downloads, uploads, native browser dialogs and full desktop control are not supported. The model receives limited page text and control information, not the screenshot stream. Opening a page makes network requests to that site.
Find moments inside local videos
In terminal chat, open /ml and choose video search and analysis. Load MP4/WebM/MOV files and index SRT/VTT subtitles, timestamped notes or Tesseract screen OCR. Text matches link to playback timestamps; export a frame as PNG.
Up to five videos, 100 MiB per file, 300 MiB total and two hours per video. OCR samples up to 12 frames in a 120-second interval and requires Tesseract plus the selected language data.
Semiconductor ML model inspection
Click 모델 검사 (Model inspection) below the CLI input, or 검사 in narrow terminals. Your draft is preserved. The application UI is currently Korean.
Install and open
npm install -g @choijinwon/oscode@0.19.0
oscodeRequires Node.js 22+. Restart older running sessions. Use BUILD mode; existing browser launch approvals apply.
- Shortcut: 모델 검사 button below the input.
- Menu: 작업 시작 → 반도체 ML 모델 검사.
- Natural language currently recognizes Korean phrases such as “반도체 검사 화면 열어줘”.
- Optional commands:
/mlto open,/ml closeto stop the local server.
Inspection workflow
- Try synthetic samples or select a PNG, JPEG or WebP image, up to 10 MiB and 25 MP.
- Expand 모델 연결 설정 and register the JSON contract for slots A and B.
- Import result JSON, or click the inference button and explicitly confirm sending the image to the configured endpoint.
- Toggle overlays and adjust the display threshold. These controls do not make a pass/fail decision.
- Export comparison JSON containing contracts, model versions, image hash and original predictions. Image bytes are not included.
| Task | Visualization | Example contract |
|---|---|---|
| Classification | Label scores | JSON |
| Detection | Boxes in original-image pixels | JSON |
| Segmentation | Polygon overlays | JSON |
Server contract
The endpoint receives a multipart POST: image contains the original file; request contains JSON with schema, modelId, modelVersion, task, image (sha256, width, height), input and output. The server owns preprocessing and returns coordinates in original pixels.
Return JSON with schema: 1, matching modelId/modelVersion/task/image, and predictions. Each prediction has a registered label and score from 0 to 1. Detection adds box: [x,y,width,height]; segmentation adds polygon: [[x,y],…]. The endpoint must allow the displayed local origin through CORS. Requests omit credentials, reject redirects and time out after 60 seconds.
Result JSON is limited to 4 MiB and 2,000 predictions. Model/image mismatches and invalid coordinates are rejected. API-key storage, OAuth, pixel masks/RLE and ground-truth accuracy evaluation are not supported. Imported result provenance is not verified.
Refreshing clears in-memory state. Closing the browser does not stop the local server; exiting the CLI does. A/B is visual comparison, not a statistical benchmark.
Result-based services
Compose registered blocks with AI, run specialist workflows locally, and record quotes, deliverables and customer acceptance.
Two specialist workflows
- Semiconductor: inspection CSV → LOT-level yield report. Untested dies are excluded. No root-cause or process optimization claims.
- ERP: KRW journal JSON → per-voucher debit/credit mismatch report. Integer-string amounts use BigInt. No SAP posting, tax review or accounting approval.
Quote → run → review → record acceptance
/packs list
/jobs quote erp-voucher {"parameters":{"input":"examples/packs/ledger.json","output":"erp-result.md"},"priceKrw":"10000"}
/jobs show
/jobs run
/jobs acceptThe 10,000 KRW value is an example, not a recommended or published price. Enter these commands inside OSCODE 0.17.0 or newer.
delivered means output files are ready locally, not that they were sent to a customer. /jobs accept records an operator’s confirmation that the customer approved the result; it does not authenticate the customer. ready_to_invoice is a local record, not a payment or invoice.
Verification and failure handling
Successful execution and nonempty output files are required. Changed output hashes prevent acceptance. Failed or cancelled jobs are not billable. Repeated acceptance does not create a second record. Business correctness still needs review. Records are editable local session files, not a secure billing ledger.
Reusable blocks and packs
/blocks plan request uses your configured model to compose a typed graph. /blocks run executes registered local blocks without model calls. There are 13 blocks and two sample packs. /packs build, /packs import and /packs use support versioned delivery files and project-specific parameters.
Built-in packs are MIT samples. A content hash detects changes; it is not a seller signature, purchase verification or DRM. There is no drag-and-drop canvas or hosted ordering service.
Detailed operations guide (Korean) ↗ · Block contracts (Korean) ↗ · Sample journal JSON ↗
Install and run
Use Node.js 22 or later. Run OSCODE from your project folder.
npx @choijinwon/oscode@0.19.0 --agent frontendGlobal installation
npm install -g @choijinwon/oscode@0.19.0
oscode --agent frontendThe global command and npx run the same npm package. Version 0.16.0 includes semiconductor data import; 0.15.0 introduced Next.js and Nuxt design generation.
Connect a model
Local commands can start without an API key. Use settings to configure your model provider or the supported account-login flow. Enter keys through the dedicated hidden input, not in chat.
/settings
/keyAI code generation may send selected code and conversation to your configured provider. Local file inspection and model requests are separate operations.
Your first task
Inspect the project, scope your request to a file, review the plan and approve intended changes.
/catalog
/map Button
@src/Button.tsx Fix the mobile line wrappingReplace example paths with real project files. Version 0.18.0 no longer exposes PLAN mode; write and shell permissions still apply. Inspect the proposed changes before applying them.
Generate design components
Use react, vue, angular, svelte, next or nuxt. The gallery previews shared HTML behavior; it does not compile your target application.
/design gallery react
/design select react/semi-wafer
/design code
/design apply src/components/WaferMap.jsxSpecialized galleries: /design mobile, /design admin, /design erp, /design interact, /design semiconductor. Append the framework name.
/design theme code nextGenerate a shared DesignTheme wrapper for consistent styles and override tokens per page. The output consists of component code and CSS. Wire application data and events in the host app.
Next.js and Nuxt
Next.js
Next.js 13+ App Router and React 18+ JSX starters retain a use client boundary. Pass event callbacks from a Client Component. For Pages Router, move global CSS imports to pages/_app.
/design select next/semi-trace
/design apply app/components/LotExplorer.jsxNuxt
Nuxt 3/4 starters require Vue 3.5+ for useId. Browser behavior attaches onMounted. Use components/ in Nuxt 3 or app/components/ in Nuxt 4, respecting srcDir overrides.
/design select nuxt/semi-trace
/design apply app/components/LotExplorer.vueApp creation, dependencies, routes and backend APIs are not configured automatically. Validate the real app build and SSR behavior.
Semiconductor UI and data
Ten components are available. Nine use synthetic fixtures; semi-trace reads your local JSON or CSV.
| Component ID | Screen |
|---|---|
semi-wafer | Wafer map |
semi-process | Process flow |
semi-equipment | Equipment status |
semi-yield | Yield and defect distribution |
semi-lot | LOT tracking |
semi-alarms | Alarm monitor |
semi-maintenance | Maintenance schedule |
semi-recipe | Recipe comparison |
semi-metrology | Measurement trends |
semi-trace | Local data explorer |
/design semiconductor next
/design select next/semi-trace
/design codeImport contract
{"rows":[{"lot":"LOT-A","wafer":"W-01","x":0,"y":0,"bin":"PASS","value":0,"unit":"nm"}]}CSV header: lot,wafer,x,y,bin,value,unit. Files are limited to 2 MiB and 1–10,000 rows; the explorer shows 100 dies per page. Coordinates must be integers within ±100,000 and unique within a LOT/wafer pair. bin must be PASS, FAIL or UNTESTED. Numeric measurements require a unit. Empty CSV measurements become null, not zero.
Yield is PASS / (PASS + FAIL). No tested dies produces “no inspection” rather than 0%. Failed imports retain previous data. The displayed import time is not the measurement timestamp.
Download JSON example ↓ · Download CSV example ↓
Team rules and state preservation
Register project-specific rules and scenarios before running checks. Required and forbidden import checks only cover configured files and patterns.
/team-ui check
/workflow run ordersThe example name orders must exist in your project. State-preservation scenarios can compare configured input values, selections, focus and scroll before and after an action. See the detailed Korean configuration guide for setup.
Browser verification and evidence
Start the project development server, then use its actual URL.
/review http://localhost:3000
/review show
/evidence review.mdBrowser checks require Playwright and the appropriate browser runtime, a running app and execution permission. Missing or skipped checks are not counted as a full pass. Review generated scenarios against your business requirements.
Local routing and token use
The OSCODE rules engine classifies requests as design, diagnosis, testing, architecture or general. It makes no additional model call for routing.
/decide Create a button design
/usageOSCODE_DECISION_MODE=shadow npx @choijinwon/oscode@0.19.0Modes: local (default, apply tool priority), shadow (record only), off (disable routing priority). Evidence is a matched rule, not a calibrated probability. Ambiguous, unmatched or over-4,000-character requests use the general route. Approval and read-only task restrictions remain in effect. Total token savings are not guaranteed.
Label images and review ground truth.
Open /ml and choose Data labeling. Classify images, draw defect boxes, record LOT/wafer IDs, import predictions as drafts, and review annotations. Predictions and human ground truth remain separate.
Export all work or reviewed records as JSON. Work stays in tab memory: download it before closing and keep original images separately. Restore verifies image hashes and requires another review. COCO/YOLO conversion and automatic training are not included.
Labeling guide (Korean) ↗ · MLflow guide (Korean) ↗ · Simulator guide (Korean) ↗
HWP, HWPX, Word and Excel
Use /ocr file.docx or attach @file.xlsx. HWP v5 requires hwp5txt, lxml and six. HWPX, DOCX and XLSX require Python 3. Extracts stored text/values; formulas are not recalculated and embedded images/layout are not reconstructed.
Context diagnostics
/context inspect shows the last request's estimated token breakdown and advice. A notice appears at 80% input capacity once per turn. No additional AI call. PLAN mode is removed; file and shell approvals remain.
Troubleshooting and language scope
Semiconductor gallery troubleshooting · 0.16.1
First, run this in your operating system terminal:
npx @choijinwon/oscode@0.19.0Then enter these commands inside the OSCODE chat, not your shell:
/design semiconductor reactApprove the gallery launch when prompted. It requires BUILD mode and browser execution permission. If the browser cannot open automatically, open the printed localhost URL yourself. Version 0.16.1 keeps the gallery server running while waiting for selection. Keep the terminal open and select within five minutes, or press Ctrl+C to cancel. This release also adds semiconductor command completion. Restart an older CLI using the pinned command above.
If a command is missing, use the pinned npm version above and restart OSCODE. Source commands such as node bin/oscode.js must run from a source checkout, not your home folder.
This English guide covers setup and the main workflows. CLI messages, generated component labels and some detailed guides remain in Korean. Choose 한국어 documentation for the full existing reference. Report issues with reproduction steps, framework version and sanitized errors; do not include API keys.