title: Which are the differences between vue-cli and vue-cli-service?
body: <p>I've used Vue for some time now, but I'm just getting started with the CLI and I got a bit confused.</p>
  
  <p>I installed <a href="https://www.npmjs.com/package/@vue/cli" rel="noreferrer"><code>@vue/cli</code></a> and if I type <code>vue</code> in the command line, I get:</p>
  
  <pre><code>Usage: vue &lt;command&gt; [options]
  
  Options:
    -V, --version                              output the version number
    -h, --help                                 output usage information
  
  Commands:
    create [options] &lt;app-name&gt;                create a new project powered by vue-cli-service
    add [options] &lt;plugin&gt; [pluginOptions]     install a plugin and invoke its generator in an already created project
    invoke [options] &lt;plugin&gt; [pluginOptions]  invoke the generator of a plugin in an already created project
    inspect [options] [paths...]               inspect the webpack config in a project with vue-cli-service
    serve [options] [entry]                    serve a .js or .vue file in development mode with zero config
    build [options] [entry]                    build a .js or .vue file in production mode with zero config
    ui [options]                               start and open the vue-cli ui
    init [options] &lt;template&gt; &lt;app-name&gt;       generate a project from a remote template (legacy API, requires @vue/cli-init)
    config [options] [value]                   inspect and modify the config
    upgrade [semverLevel]                      upgrade vue cli service / plugins (default semverLevel: minor)
    info                                       print debugging information about your environment
  
    Run vue &lt;command&gt; --help for detailed usage of given command.
  </code></pre>
  
  <p>I created a project with <code>vue</code> and I needed to install <a href="https://www.npmjs.com/package/@vue/cli-service-global" rel="noreferrer"><code>@vue/cli-service-global</code></a> for some reason that I can't remember.</p>
  
  <p>After that, however, I noticed:</p>
  
  <pre><code>'vue-cli-service' is not recognized as an internal or external command
  </code></pre>
  
  <p>And that's because I had to install <a href="https://www.npmjs.com/package/@vue/cli-service" rel="noreferrer"><code>@vue/cli-service</code></a>. Now, when I type <code>vue-cli-service</code> in the command line, I get:</p>
  
  <pre><code>  Usage: vue-cli-service &lt;command&gt; [options]
  
    Commands:
  
      serve     start development server
      build     build for production
      inspect   inspect internal webpack config
  
    run vue-cli-service help [command] for usage of a specific command.
  </code></pre>
  
  <hr>
  
  <p>Apparently, I can build, serve, and inspect with both CLI tools. My question is - what's the difference between them? Both the readme of <code>@vue/cli</code> and <code>@vue/cli-service</code> have nothing but a link to <a href="https://cli.vuejs.org/" rel="noreferrer">this page</a> where no answer is given to that question.</p>
  
  <p>What can I do with one that I can't do with the other? Do I need both?</p>