# OneShotAiPanel > Open-source React component that connects to the LLM you configure (opencode, shadcn, fallback) and runs your tasks in a single turn: JSON streaming, schema validation, diff review and direct plug into your stack. ## What is OneShotAiPanel? A React component that connects to the LLM of your choice and turns a request into validated deliverables, without manual copy-paste. ## Features - **Connection to your configured LLM** : the component calls the provider you configure (opencode, shadcn, fallback, or a custom onSend) - **Real-time JSON streaming** : the model response streams in and is validated against schemas (zod) - **Validated JSON schemas** : each ticket expects a precise, schema-controlled structure - **Automatic validation** : on mismatch, targeted feedback is sent back for a second turn - **Diff & review** : when content already exists, a line-by-line diff shows what changes before integrating - **Direct plug** : retrieve the selected content via onPlug and wire it into your code, adapter or SDK ## How it works - **1. Describe the task** — A user prompt, a system prompt and context files. The component assembles the final prompt. - **2. Configure the model connection** — The component connects to the provider you configure via the adapter (opencode, shadcn, fallback) or your own onSend. Without this connection, nothing runs. - **3. A single send** — The model responds with streaming JSON. Each ticket expects a precise, schema-controlled structure. - **4. Automatic validation** — The response is validated against the schemas. On mismatch, targeted feedback is sent back for a second turn. - **5. Diff & review** — If content already exists, a line-by-line diff shows you what changes before integrating. - **6. Plug** — Retrieve the selected content via onPlug and wire it into your code, adapter or SDK. ## Configuration (main props) ### Content - `title` — Title shown in the component header. - `systemPrompt` — The role and rules given to the model. - `initialUserPrompt` — The initial request pre-filled in the user field. ### Context - `files` — Project files provided as context to the model. - `tickets` — Task breakdown, each ticket with its JSON schema. ### Contract - `parser` — Customize response parsing and validation. - `invalidMode` — Warn or block when the response does not validate the schemas. ### Adapter - `adapter` — Provider (opencode, shadcn, fallback), model and API key. - `onSend` — Replace the send with your own logic (SDK, proxy…). ### Events - `onPlug` — Called when the user integrates the selected contents. ### i18n - `language` — Interface language. - `labels` — Fine-grained override of any label. ### UI - `actionLabel` — Label of the main run button. - `showInfoButton` — Shows the help / integration / credits button. - `showSettingsButton` — Shows the settings button. - `showInfoIntegration` — Shows the integration point in the help panel. - `showInfoCredits` — Shows the credits in the help panel. ## Installation The source code and demo live on GitHub: - Repository : https://github.com/bn-dev-19/one-shot-ai-panel - Current version : v1.1.3 (archive : https://github.com/bn-dev-19/one-shot-ai-panel/archive/refs/tags/v1.1.3.zip) ## Playground The component actually runs on the site: : https://oneshot-ai-panel.asistem19.com/en#playground ## Links - Home : https://oneshot-ai-panel.asistem19.com/en - GitHub : https://github.com/bn-dev-19/one-shot-ai-panel - License : https://oneshot-ai-panel.asistem19.com/en/license - Terms of use : https://oneshot-ai-panel.asistem19.com/en/terms - Privacy policy : https://oneshot-ai-panel.asistem19.com/en/privacy - Credits : https://oneshot-ai-panel.asistem19.com/en/credits