or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

configuration-management.mddevelopment-tools.mdgraphical-interface.mdindex.mdplugin-management.mdprogrammatic-api.mdproject-creation.mdproject-maintenance.md

graphical-interface.mddocs/

0

# Graphical Interface

1

2

Web-based project management interface providing visual tools for Vue CLI project creation, plugin management, and development workflow.

3

4

## Capabilities

5

6

### UI Command

7

8

Start the Vue CLI graphical user interface web application.

9

10

```bash { .api }

11

/**

12

* Start and open the vue-cli ui

13

* Launches a web-based interface for managing Vue CLI projects

14

*/

15

vue ui

16

17

Options:

18

-H, --host <host> Host used for the UI server (default: localhost)

19

-p, --port <port> Port used for the UI server (by default search for available port)

20

-D, --dev Run in dev mode

21

--quiet Don't output starting messages

22

--headless Don't open browser on start and output port

23

```

24

25

**Usage Examples:**

26

27

```bash

28

# Start UI with default settings (opens browser automatically)

29

vue ui

30

31

# Start UI on specific host and port

32

vue ui --host 0.0.0.0 --port 8080

33

34

# Start UI in headless mode (no browser opening)

35

vue ui --headless

36

37

# Start UI quietly (no startup messages)

38

vue ui --quiet

39

40

# Start UI in development mode

41

vue ui --dev

42

```

43

44

### UI Function (Programmatic)

45

46

Programmatic interface for starting the Vue CLI UI server.

47

48

```typescript { .api }

49

/**

50

* Start Vue CLI UI server programmatically

51

* @param options - UI server options

52

*/

53

async function ui(options?: UIOptions): Promise<UIServer>;

54

55

interface UIOptions {

56

/** Server host address */

57

host?: string;

58

/** Server port number */

59

port?: number;

60

/** Run in development mode */

61

dev?: boolean;

62

/** Suppress startup messages */

63

quiet?: boolean;

64

/** Don't open browser automatically */

65

headless?: boolean;

66

}

67

68

interface UIServer {

69

/** Server host */

70

host: string;

71

/** Server port */

72

port: number;

73

/** Server URL */

74

url: string;

75

/** Close the server */

76

close(): Promise<void>;

77

}

78

```

79

80

**Usage Examples:**

81

82

```typescript

83

import { ui } from "@vue/cli";

84

85

// Start UI server

86

const server = await ui({

87

host: 'localhost',

88

port: 8080,

89

headless: true

90

});

91

92

console.log(`Vue CLI UI running at ${server.url}`);

93

94

// Close server when done

95

await server.close();

96

```

97

98

### UI Features

99

100

Core features available in the Vue CLI graphical interface.

101

102

```typescript { .api }

103

/**

104

* Vue CLI UI provides the following features through web interface:

105

*/

106

107

/**

108

* Project Management

109

* - Create new Vue projects with interactive wizards

110

* - Import existing Vue projects

111

* - Browse and switch between projects

112

* - Project dashboard with overview and quick actions

113

*/

114

interface ProjectManagement {

115

/** Create new project with guided setup */

116

createProject: ProjectCreationWizard;

117

/** Import existing project into UI */

118

importProject: ProjectImportFlow;

119

/** Switch between managed projects */

120

projectSwitcher: ProjectList;

121

/** Project overview dashboard */

122

dashboard: ProjectDashboard;

123

}

124

125

/**

126

* Plugin Management

127

* - Browse available plugins

128

* - Install and configure plugins

129

* - Update existing plugins

130

* - Plugin configuration UI

131

*/

132

interface PluginManagement {

133

/** Plugin marketplace browser */

134

pluginBrowser: PluginMarketplace;

135

/** Install plugins with configuration */

136

pluginInstaller: PluginInstallationWizard;

137

/** Update plugins to newer versions */

138

pluginUpdater: PluginUpdateInterface;

139

/** Configure plugin settings */

140

pluginConfigurator: PluginConfigurationPanel;

141

}

142

143

/**

144

* Configuration Management

145

* - Visual webpack config editor

146

* - ESLint configuration interface

147

* - Environment variable management

148

* - Build configuration options

149

*/

150

interface ConfigurationManagement {

151

/** Visual webpack configuration */

152

webpackConfig: WebpackConfigEditor;

153

/** ESLint rules configuration */

154

eslintConfig: ESLintConfigInterface;

155

/** Environment variables editor */

156

envVars: EnvironmentVariableEditor;

157

/** Build settings configuration */

158

buildConfig: BuildConfigurationPanel;

159

}

160

161

/**

162

* Task Management

163

* - Run npm/yarn scripts visually

164

* - Development server controls

165

* - Build process monitoring

166

* - Task output streaming

167

*/

168

interface TaskManagement {

169

/** Visual script runner */

170

taskRunner: TaskExecutionInterface;

171

/** Development server controls */

172

devServer: DevelopmentServerPanel;

173

/** Build process monitoring */

174

buildMonitor: BuildProcessInterface;

175

/** Real-time task output */

176

taskOutput: OutputStreamingPanel;

177

}

178

```

179

180

### UI Server Architecture

181

182

Architecture and components of the Vue CLI UI server.

183

184

```typescript { .api }

185

/**

186

* Vue CLI UI server architecture components:

187

*/

188

189

/**

190

* Backend API Server

191

* - Express.js server providing REST and GraphQL APIs

192

* - Project file system operations

193

* - Plugin management operations

194

* - Task execution and monitoring

195

*/

196

interface UIBackend {

197

/** REST API endpoints */

198

restAPI: RESTEndpoints;

199

/** GraphQL API for complex queries */

200

graphqlAPI: GraphQLSchema;

201

/** WebSocket connection for real-time updates */

202

websocket: WebSocketServer;

203

/** File system operations */

204

fileSystem: FileSystemAPI;

205

}

206

207

/**

208

* Frontend Web Application

209

* - Vue.js single-page application

210

* - Component library for Vue CLI-specific UI

211

* - Real-time updates via WebSocket

212

* - Responsive design for various screen sizes

213

*/

214

interface UIFrontend {

215

/** Main Vue.js application */

216

app: VueApplication;

217

/** UI component library */

218

components: UIComponentLibrary;

219

/** State management */

220

store: VuexStore;

221

/** Routing configuration */

222

router: VueRouter;

223

}

224

```

225

226

### API Endpoints

227

228

REST API endpoints provided by the UI server.

229

230

```typescript { .api }

231

/**

232

* REST API endpoints for Vue CLI UI:

233

*/

234

interface RESTEndpoints {

235

/** Project management endpoints */

236

projects: {

237

/** GET /api/projects - List all projects */

238

list: () => Project[];

239

/** POST /api/projects - Create new project */

240

create: (data: ProjectCreationData) => Project;

241

/** GET /api/projects/:id - Get project details */

242

get: (id: string) => Project;

243

/** PUT /api/projects/:id - Update project */

244

update: (id: string, data: ProjectUpdateData) => Project;

245

/** DELETE /api/projects/:id - Remove project */

246

delete: (id: string) => void;

247

};

248

249

/** Plugin management endpoints */

250

plugins: {

251

/** GET /api/plugins - List available plugins */

252

list: () => Plugin[];

253

/** POST /api/plugins - Install plugin */

254

install: (data: PluginInstallData) => InstallationResult;

255

/** PUT /api/plugins/:id - Update plugin */

256

update: (id: string) => UpdateResult;

257

/** DELETE /api/plugins/:id - Remove plugin */

258

remove: (id: string) => void;

259

};

260

261

/** Task management endpoints */

262

tasks: {

263

/** GET /api/tasks - List available tasks */

264

list: () => Task[];

265

/** POST /api/tasks/:id/run - Run task */

266

run: (id: string, args?: string[]) => TaskExecution;

267

/** POST /api/tasks/:id/stop - Stop running task */

268

stop: (id: string) => void;

269

/** GET /api/tasks/:id/logs - Get task logs */

270

logs: (id: string) => TaskLog[];

271

};

272

273

/** Configuration endpoints */

274

config: {

275

/** GET /api/config/webpack - Get webpack config */

276

webpack: () => WebpackConfig;

277

/** PUT /api/config/webpack - Update webpack config */

278

updateWebpack: (config: WebpackConfig) => void;

279

/** GET /api/config/eslint - Get ESLint config */

280

eslint: () => ESLintConfig;

281

/** PUT /api/config/eslint - Update ESLint config */

282

updateEslint: (config: ESLintConfig) => void;

283

};

284

}

285

```

286

287

### WebSocket Events

288

289

Real-time events provided through WebSocket connection.

290

291

```typescript { .api }

292

/**

293

* WebSocket events for real-time updates:

294

*/

295

interface WebSocketEvents {

296

/** Task execution events */

297

tasks: {

298

/** Task started event */

299

'task:start': TaskStartEvent;

300

/** Task progress update */

301

'task:progress': TaskProgressEvent;

302

/** Task completed event */

303

'task:complete': TaskCompleteEvent;

304

/** Task error event */

305

'task:error': TaskErrorEvent;

306

/** Task output stream */

307

'task:output': TaskOutputEvent;

308

};

309

310

/** File system events */

311

files: {

312

/** File changed event */

313

'file:changed': FileChangeEvent;

314

/** File added event */

315

'file:added': FileAddEvent;

316

/** File deleted event */

317

'file:deleted': FileDeleteEvent;

318

};

319

320

/** Plugin events */

321

plugins: {

322

/** Plugin installed event */

323

'plugin:installed': PluginInstallEvent;

324

/** Plugin updated event */

325

'plugin:updated': PluginUpdateEvent;

326

/** Plugin removed event */

327

'plugin:removed': PluginRemoveEvent;

328

};

329

330

/** Project events */

331

projects: {

332

/** Project opened event */

333

'project:opened': ProjectOpenEvent;

334

/** Project config changed */

335

'project:config-changed': ProjectConfigChangeEvent;

336

};

337

}

338

```

339

340

### UI Component System

341

342

Reusable UI components provided by the Vue CLI UI.

343

344

```typescript { .api }

345

/**

346

* Vue CLI UI component library:

347

*/

348

interface UIComponents {

349

/** Layout components */

350

layout: {

351

/** Main application layout */

352

AppLayout: VueComponent;

353

/** Navigation sidebar */

354

Sidebar: VueComponent;

355

/** Top navigation bar */

356

Navbar: VueComponent;

357

/** Content area wrapper */

358

ContentArea: VueComponent;

359

};

360

361

/** Form components */

362

forms: {

363

/** Plugin configuration form */

364

PluginConfigForm: VueComponent;

365

/** Project creation form */

366

ProjectCreateForm: VueComponent;

367

/** Configuration editor form */

368

ConfigEditorForm: VueComponent;

369

/** Task parameter form */

370

TaskParamsForm: VueComponent;

371

};

372

373

/** Display components */

374

display: {

375

/** Project card display */

376

ProjectCard: VueComponent;

377

/** Plugin list item */

378

PluginListItem: VueComponent;

379

/** Task execution status */

380

TaskStatus: VueComponent;

381

/** Configuration viewer */

382

ConfigViewer: VueComponent;

383

};

384

385

/** Interactive components */

386

interactive: {

387

/** File browser */

388

FileBrowser: VueComponent;

389

/** Task runner interface */

390

TaskRunner: VueComponent;

391

/** Plugin installer wizard */

392

PluginWizard: VueComponent;

393

/** Configuration editor */

394

ConfigEditor: VueComponent;

395

};

396

}

397

```

398

399

### Configuration Options

400

401

UI server configuration and customization options.

402

403

```typescript { .api }

404

/**

405

* UI server configuration options:

406

*/

407

interface UIServerConfig {

408

/** Server binding configuration */

409

server: {

410

/** Host to bind server to */

411

host: string;

412

/** Port to bind server to */

413

port: number;

414

/** Enable HTTPS */

415

https: boolean;

416

/** SSL certificate options */

417

ssl?: SSLOptions;

418

};

419

420

/** Development mode settings */

421

development: {

422

/** Enable development mode */

423

enabled: boolean;

424

/** Hot module replacement */

425

hmr: boolean;

426

/** Source maps */

427

sourceMaps: boolean;

428

/** Debug logging */

429

debug: boolean;

430

};

431

432

/** Security settings */

433

security: {

434

/** CORS configuration */

435

cors: CORSOptions;

436

/** Authentication settings */

437

auth?: AuthOptions;

438

/** Rate limiting */

439

rateLimit?: RateLimitOptions;

440

};

441

442

/** UI customization */

443

ui: {

444

/** Custom theme */

445

theme?: ThemeOptions;

446

/** Plugin availability */

447

plugins: PluginAvailabilityOptions;

448

/** Feature flags */

449

features: FeatureFlagOptions;

450

};

451

}

452

```

453

454

### Browser Integration

455

456

Integration with system browsers for launching and managing the UI.

457

458

```typescript { .api }

459

/**

460

* Browser integration utilities:

461

*/

462

463

/**

464

* Open URL in default browser

465

* @param url - URL to open

466

* @param options - Browser options

467

*/

468

function openBrowser(url: string, options?: BrowserOptions): Promise<void>;

469

470

interface BrowserOptions {

471

/** Specific browser to use */

472

browser?: string;

473

/** Wait for browser to close */

474

wait?: boolean;

475

/** Browser arguments */

476

args?: string[];

477

}

478

479

/**

480

* Detect available browsers on system

481

* @returns List of available browsers

482

*/

483

function detectBrowsers(): Browser[];

484

485

interface Browser {

486

/** Browser name */

487

name: string;

488

/** Browser executable path */

489

path: string;

490

/** Browser version */

491

version: string;

492

/** Whether browser is default */

493

isDefault: boolean;

494

}

495

```