@title Arcanist Quick Start
@group userguide

Quick guide to getting Arcanist working for a new project.

This is a summary of steps to install Arcanist, configure a project for use with
it, and run `arc` to send changes for review. For detailed instructions on
installing Arcanist, see @{article:Arcanist User Guide}. OS specific guides
are also available.

  - For Mac OS X, see @{article:Arcanist User Guide: Mac OS X}.
  - For Windows, see @{article:Arcanist User Guide: Windows}.

= Installing Arcanist =

First, install dependencies:

  - Install PHP.
  - Install Git.

Then install Arcanist itself:

  $ mkdir somewhere/
  $ cd somewhere/
  somewhere/ $ git clone https://github.com/phacility/libphutil.git
  somewhere/ $ git clone https://github.com/phacility/arcanist.git

Add `arc` to your path:

  $ export PATH="$PATH:/somewhere/arcanist/bin/"

This won't work for Windows, see @{article:Arcanist User Guide: Windows} for
instructions.

= Configure Your Project =

For detailed instructions on project configuration, see
@{article:Arcanist User Guide: Configuring a New Project}.

Create a `.arcconfig` file in your project's working copy:

  $ cd yourproject/
  yourproject/ $ $EDITOR .arcconfig
  yourproject/ $ cat .arcconfig
  {
    "phabricator.uri" : "https://phabricator.example.com/"
  }

Set `phabricator.uri` to the URI for your Phabricator install (where `arc`
should send changes to).

NOTE: You should **commit this file** to the repository.

= Install Arcanist Credentials =

Credentials allow you to authenticate. You must have an account on Phabricator
before you can perform this step.

  $ cd yourproject/
  yourproject/ $ arc install-certificate
  ...

Follow the instructions. This will link your user account on your local machine
to your Phabricator account.

= Send Changes For Review =

For detailed instructions on using `arc diff`, see
@{article:Arcanist User Guide: arc diff}.

  $ $EDITOR file.c
  $ arc diff

= Next Steps =

Continue by:

  - learning more about project configuration with
    @{article:Arcanist User Guide: Configuring a New Project}; or
  - learning more about `arc diff` with
    @{article:Arcanist User Guide: arc diff}; or
  - returning to @{article:Arcanist User Guide}.
