1 <!-- LOGO -->
2 <h1>
3 <p align="center">
4 <img src="https://avatars.githubusercontent.com/u/89791739?s=200&v=4" alt="smbCloud Logo" width="128">
5 <br>smbCloud CLI
6 </h1>
7 <p align="center">
8 smbCloud Mail, Auth, Deploy, and GresIQ from your terminal or your AI agent.
9 <br />
10 <br />
11 <a href="https://smbcloud.xyz/">Website</a>
12 ·
13 <a href="./docs">Documentation</a>
14 ·
15 <a href="CONTRIBUTING.md">Contributing</a>
16 ·
17 <a href="https://github.com/smbcloudXYZ/smbcloud-cli/releases">Releases</a>
18 </p>
19 <p align="center">
20 <a href="https://crates.io/crates/smbcloud-cli"><img alt="Crates.io" src="https://img.shields.io/crates/v/smbcloud-cli"></a>
21 <a href="https://www.npmjs.com/package/@smbcloud/cli"><img alt="npm" src="https://img.shields.io/npm/v/@smbcloud/cli"></a>
22 <a href="https://www.nuget.org/packages/SmbCloud.Cli"><img alt="NuGet" src="https://img.shields.io/nuget/v/SmbCloud.Cli"></a>
23 <a href="https://github.com/smbcloudXYZ/homebrew-tap"><img alt="Homebrew" src="https://img.shields.io/badge/homebrew-tap-orange?logo=homebrew"></a>
24 <a href="https://pypi.org/project/smbcloud-cli/"><img alt="PyPI" src="https://img.shields.io/pypi/v/smbcloud-cli"></a>
25 <a href="https://github.com/smbcloudXYZ/smbcloud-cli/blob/main/LICENSE"><img alt="Apache-2.0 License" src="https://img.shields.io/badge/license-Apache%202.0-blue.svg"></a>
26 </p>
27 </p>
28
29 ## About
30
31 **`smb`** is the command-line interface for [smbCloud](https://smbcloud.xyz/). It is
32 also an MCP server, so Claude, Cursor, and other AI agents can run the same operations
33 you do.
34
35 Send transactional email and set up domains and inbox routing on
36 [smbCloud Mail](https://smbcloudmail.com), manage authentication apps on
37 [smbCloud Auth](https://smbcloudauth.com), and deploy Rust, Node.js, Ruby, or Swift
38 apps. One binary, no runtime to install.
39
40 ## Install
41
42 If you want the quickest setup, use a pre-built native binary.
43
44 ### Homebrew (macOS & Linux)
45
46 ```sh
47 brew tap smbcloudXYZ/tap && brew trust --tap smbcloudXYZ/tap
48 brew install cli
49 ```
50
51 ### npm
52
53 ```sh
54 npm install -g @smbcloud/cli
55 ```
56
57 ### .NET tool
58
59 ```sh
60 dotnet tool install --global SmbCloud.Cli
61 ```
62
63 ### pip
64
65 ```sh
66 pip install smbcloud-cli
67 ```
68
69 ### Shell (macOS / Linux)
70
71 ```sh
72 curl -fsSL https://raw.githubusercontent.com/smbcloudXYZ/smbcloud-cli/main/install-unix.sh | sh
73 ```
74
75 ### PowerShell (Windows)
76
77 ```powershell
78 irm https://raw.githubusercontent.com/smbcloudXYZ/smbcloud-cli/main/install-windows.sh | iex
79 ```
80
81 Or grab a pre-built binary from the [Releases](https://github.com/smbcloudXYZ/smbcloud-cli/releases) page.
82
83 ## Quick Start
84
85 ```sh
86 smb login
87 smb init
88 smb deploy
89 ```
90
91 That gets you from login to first deploy.
92
93 ## MCP server
94
95 `smb --mcp` speaks the [Model Context Protocol](https://modelcontextprotocol.io) over
96 stdio, exposing 31 tools across smbCloud Mail, Auth, projects, and deployments. It is
97 listed in the official MCP Registry as `io.github.smbcloudXYZ/smbcloud-cli`.
98
99 Claude Code:
100
101 ```sh
102 claude mcp add smbcloud -- smb --mcp
103 ```
104
105 Claude Desktop, Cursor, and anything else that takes a JSON config:
106
107 ```json
108 {
109 "mcpServers": {
110 "smbcloud": {
111 "command": "npx",
112 "args": ["@smbcloud/cli", "--mcp"]
113 }
114 }
115 }
116 ```
117
118 Auth comes from `smb login`, so a terminal session and an agent session share the same
119 token and the same selected project. See [`docs/mcp.md`](./docs/mcp.md) for the full tool
120 reference.
121
122 For mobile and TV app testing, run the focused **XCRS Mobile & TV
123 Automation** profile:
124
125 ```sh
126 claude mcp add xcrs -- smb --mcp --scope automation
127 ```
128
129 It exposes target-aware Xcode, ControlKit, CoreDevice, and adb tools without
130 mixing them into the cloud tool set. The same profile is also available from
131 the standalone `xcrs --mcp` crate.
132
133 ## CI / non-interactive mode
134
135 Pass `--ci` (or set `SMB_CI=1`, or run under any provider that sets `CI`) to
136 disable interactive prompts. Confirmations take their default; anything that
137 truly needs input fails fast with a clear message instead of hanging on a
138 missing TTY.
139
140 ```sh
141 smb --ci deploy
142 ```
143
144 For example, the [AircraftsHub](https://aircraftshub.5mb.app) monorepo deploys
145 its Next.js web app with a single non-interactive command — its
146 `.smb/config.toml` pins the project, source, and runtime, so `smb --ci deploy`
147 needs no prompts. See [`docs/ci.md`](./docs/ci.md) for token setup and the full
148 behavior reference.
149
150 ## Documentation
151
152 See the [`docs/`](./docs) directory for guides on authentication, project configuration, and deployment workflows.
153
154 ## Contributing
155
156 Read [CONTRIBUTING.md](CONTRIBUTING.md) to get started. Contributions are welcome.
157
158 For the broader product, see [smbCloud](https://smbcloud.xyz/) and the [deployment docs](https://smbcloud.xyz/posts).
159
160 ## License
161
162 [Apache-2.0](LICENSE)
163
164 ## Copyright
165
166 © 2026 [Splitfire AB](https://5mb.app) ([smbCloud](https://smbcloud.xyz)).