Skip to content

Commit 376cdd7

Browse files
authored
feat: named server registry and --server flag for CLI commands
feat: named server registry and --server flag for CLI commands
2 parents 3cba27e + 91f240a commit 376cdd7

16 files changed

Lines changed: 2923 additions & 83 deletions

bin/flutter_skill.dart

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import 'package:flutter_skill/src/cli/launch.dart';
33
import 'package:flutter_skill/src/cli/inspect.dart';
44
import 'package:flutter_skill/src/cli/act.dart';
55
import 'package:flutter_skill/src/cli/server.dart';
6+
import 'package:flutter_skill/src/cli/server_cmd.dart';
7+
import 'package:flutter_skill/src/cli/connect.dart';
68
import 'package:flutter_skill/src/cli/report_error.dart';
79
import 'package:flutter_skill/src/cli/setup_priority.dart';
810
import 'package:flutter_skill/src/cli/doctor.dart';
@@ -17,6 +19,7 @@ import 'package:flutter_skill/src/cli/security.dart';
1719
import 'package:flutter_skill/src/cli/diff.dart';
1820
import 'package:flutter_skill/src/cli/quickstart.dart';
1921
import 'package:flutter_skill/src/cli/client.dart';
22+
import 'package:flutter_skill/src/cli/ping_cmd.dart';
2023

2124
void main(List<String> args) async {
2225
if (args.isEmpty) {
@@ -27,7 +30,10 @@ void main(List<String> args) async {
2730
print(' quickstart Guided demo — see flutter-skill in action in 30s');
2831
print(' demo Launch a built-in demo app — zero setup needed');
2932
print(' launch Launch and auto-connect to an app');
30-
print(' server Start MCP server (used by IDEs)');
33+
print(' connect Attach to a running Flutter app and name it');
34+
print(' ping Health check one or more named server instances');
35+
print(' server Start MCP server / manage named server instances');
36+
print(' servers List all running named server instances');
3137
print(' inspect Inspect interactive elements');
3238
print(' act Perform actions (tap, enter_text, scroll)');
3339
print(' screenshot Take a screenshot of the running app');
@@ -104,8 +110,27 @@ void main(List<String> args) async {
104110
case 'act':
105111
await runAct(commandArgs);
106112
break;
113+
case 'connect':
114+
await runConnect(commandArgs);
115+
break;
116+
case 'ping':
117+
// Quick health check for one or more named servers.
118+
// Usage: flutter_skill ping --server=<id>[,<id2>,...]
119+
await runPing(commandArgs);
120+
break;
121+
case 'servers':
122+
// Shorthand for `server list`
123+
await runServerCmd(['list', ...commandArgs]);
124+
break;
107125
case 'server':
108-
await runServer(commandArgs);
126+
// Route server subcommands (list, stop, status) to server_cmd.
127+
// Plain `server` (no subcommand) or `server` with MCP flags → MCP server.
128+
if (commandArgs.isNotEmpty &&
129+
const {'list', 'stop', 'status'}.contains(commandArgs[0])) {
130+
await runServerCmd(commandArgs);
131+
} else {
132+
await runServer(commandArgs);
133+
}
109134
break;
110135
case 'setup':
111136
await runSetupPriority(commandArgs);

0 commit comments

Comments
 (0)