An Appium client cannot create Android or iOS sessions until a separate server process is running. Starting the server in a controlled terminal gives test scripts one visible listener, one log stream, and one place to diagnose failed session requests.
The appium command launches the same server as appium server and loads managed drivers and plugins from the active APPIUM_HOME. Current servers listen on port 4723 by default and use the root WebDriver path, so clients should normally point at http://127.0.0.1:4723 instead of the older /wd/hub route.
Bind the first local server to 127.0.0.1 unless remote clients genuinely need network access. Appium's default listener accepts connections on all interfaces, and session capabilities can start apps, read device state, and use driver features, so the port belongs on a local host or a protected internal network.
Steps to start the Appium server:
- Open a terminal in the shell environment that owns the Appium drivers and plugins.
If the project sets APPIUM_HOME, start the server from the same shell so driver discovery matches the install and list commands.
- Start Appium on the local loopback address.
$ appium --address 127.0.0.1 --port 4723 --log-level info [Appium] Welcome to Appium v3.5.0 [Appium] Appium REST http interface listener started on http://127.0.0.1:4723
Use --address 0.0.0.0 only when clients on another trusted host must connect to this server, and protect the port with network controls.
- Query the status endpoint from another terminal.
$ curl --silent http://127.0.0.1:4723/status {"value":{"ready":true,"message":"The server is ready to accept new connections","build":{"version":"3.5.0"}}}ready set to true means the HTTP server can accept new WebDriver session requests. It does not prove that Android or iOS drivers are installed.
- Check that the driver needed by the first session is installed.
$ appium driver list --installed - Listing installed drivers (rerun with --verbose for more info) - uiautomator2@7.6.1 [installed (npm)] - xcuitest@11.11.2 [installed (npm)]
Install the platform driver before creating sessions if this list does not include uiautomator2 for Android or xcuitest for iOS.
Related: How to install the Appium Android driver
Related: How to install the Appium iOS driver - Use the listener URL in client code while the server terminal stays open.
http://127.0.0.1:4723
Add /wd/hub only when the server was intentionally started with a legacy base path such as --base-path /wd/hub.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.