Crosh is ChromeOS’s built-in chrome shell — a lightweight command prompt that opens in a browser tab with Ctrl + Alt + T. It gives quick access to system diagnostics and clear, readable output without installing extra tools.
This short guide presents a practical list of essential commands you can use today. Expect instructions that help check network connectivity, battery health, memory, storage, Bluetooth, and more.
Each entry focuses on real examples you can type exactly as shown. Many commands are informational and reversible, while a few alter settings or need Developer Mode. Use Ctrl + C to stop a long test and type exit to close the terminal cleanly.
Whether you want fast status checks or deeper troubleshooting, this introduction shows how to launch crosh, get help, and pick the right command for common tasks. Read on for hands-on steps and safe tips to save time and solve problems quickly.
Getting Started with Crosh: How to Open Chrome Shell and Run Your First Commands
Begin with a simple keystroke to open the chrome shell and try your first commands. Press Ctrl + Alt + T in a Chrome tab and a new terminal tab appears—no install needed.
Type help to see a short list of available actions. Use help_advanced for deeper options, or type help <command> to learn usage, flags, and expected output before running anything.
If you want a quick example, enter help ping to review syntax and sample output. That prepares you to run a connectivity check without surprises.
Safety and control
Some features require Developer Mode (for example, switching to Canary builds). These carry stability and security trade-offs—only enable them if you understand the risks.
- To cancel a hanging diagnostic, press Ctrl + C to stop the process immediately.
- When finished, type exit to close the session and avoid leaving tasks running.
- Commands vary by device and OS version; if one is missing, try help_advanced for alternatives.
Try a short starter list: ping, network_diag, ipaddrs, battery_test, memory_test, top, and uptime. Outputs are plain text and easy to read, so beginners can learn fast without changing settings.
20 Crosh Terminal Commands All Chromebook Users Should Know
Quick reference: use these shell tools to test connectivity, inspect hardware, and control updates without extra apps.
- ping <website> — tests latency and packet loss. Try ping google.com for a clean baseline.
- network_diag — runs full network diagnostics and saves a text report. Use network_diag –wifi for Wi‑Fi driver and signal details.
- tracepath <website> — traces packet hops to locate bottlenecks beyond a simple ping.
- dns — perform DNS lookups to confirm name resolution before blaming the broader network.
- ipaddrs (-4 | -6) — show current IPv4 or IPv6 addresses; useful for router rules or VPN setup.
- modem help — lists modem subcommands: status, activate, reset, eSIM and more on LTE/5G models.
- set_apn / set_cellular_ppp — configure or clear APN (use set_apn -c to reset) when cellular fails.
- update_over_cellular enable|disable — allow or block system updates on mobile data to avoid surprises.
- p2p_update enable|disable — toggle peer-to-peer update sharing; add –show-peers to audit connections.
- battery_test <seconds> — run a short discharge check (e.g., battery_test 30) to read charge, health, and drain rate.
- memory_test — run a memory diagnostics pass; use meminfo or free to view live allocation and availability.
- top — view all running processes, including low-level tasks not shown in the basic task manager.
- uptime — see how long the system has run; a long session can explain sluggish behavior.
- evtest — list input devices and monitor live events for touchpads, styluses, and other input hardware.
- bt_console — open the Bluetooth console to scan, pair, block/unblock, and view device info.
- storage_status / storage_test_1 — check S.M.A.R.T health and run offline drive tests to catch early failures.
- set_time — set date and clock manually when strict timing is required for testing.
- rollback — revert to the previous OS version; note this triggers a Powerwash and may be blocked on managed devices.
- live_in_a_coal_mine — switch to the Canary channel for bleeding‑edge builds; requires Developer Mode and is unstable.
Quick tips: press Ctrl + C to stop a stuck process and type exit when done. Build a personal cheat sheet with help and help_advanced to tailor this list to your device.
Network and Connection Troubleshooting from the Terminal
Troubleshooting a flaky network is easier when you follow a simple test flow. Use the terminal to run quick checks that separate local device problems from wider outages. Start small and move up the ladder only when results point to deeper issues.
When to choose ping, network_diag, or tracepath
Decision tree:
- Run ping <website> first to verify reachability and measure latency.
- If you see packet loss or high response times, run network_diag to collect broad diagnostics and a saved report.
- Use tracepath <website> to map hops and find where delays occur along the route.
Example: try ping google.com. If results show packet loss, escalate to network_diag for interface and driver status.
Advanced Wi‑Fi checks: network_diag –wifi and reading results
Run network_diag –wifi to collect driver info, signal strength, and interface state. The report highlights auth failures, DHCP issues, and driver warnings in clear text.
Save and scan that file for error lines. If only this device has problems, focus on its Wi‑Fi stack; if all devices fail, test the router or modem. When a domain ping fails but an IP ping works, check dns to confirm name resolution.
Cancel any long test with Ctrl + C and rerun using a different website or after moving closer to the access point.
System Diagnostics and Performance Checks
Run quick diagnostics to see whether the problem is memory, CPU, or storage related. Start with safe, read-only checks that give clear information you can act on.
memory_test verifies RAM integrity. Use it when tabs crash or apps freeze. Press Ctrl + C to stop if the run takes too long.
Deep dive into memory_test, meminfo, and free
Use meminfo and free to view total, used, and available memory. Look at “available” and buffers/caches to tell if pressure is temporary or persistent.
If available memory is very low, closing heavy tabs often frees space. Run the diagnostic tests if crashes keep happening to confirm hardware is healthy.
Process analysis with top for CPU and memory hogs
top shows low-level processes beyond the basic task view. Sort or scan its output to find runaway tasks that use lots of CPU or RAM.
Capture a snapshot in top, then close a suspect app and run it again. If usage drops, restart the app to clear the spike. Pair top with uptime to see if long sessions correlate with rising footprints.
| Command | Purpose | What to watch | Immediate action |
|---|---|---|---|
| memory_test | Check RAM integrity | Errors or failures | Rerun; contact support if errors persist |
| meminfo / free | Live memory allocation | Low “available” or high swap use | Close heavy tabs; reboot if needed |
| top | Inspect processes and CPU | High CPU%, high RES memory | Kill or restart the offending process |
| uptime / storage_status | Session length and storage health | Long uptime; storage errors | Reboot; run storage tests if stutters continue |
Tip: Most checks are non-destructive and ideal first steps. Start with obvious outliers — very high CPU or very low free memory — for quick wins.
Power, Battery, and Update Controls
Keep power and updates in check with a couple of quick checks and toggles. These tools show health, drain rate, and let you limit background downloads to save battery and data.
Battery insights with battery_test
Run battery_test <seconds> to read current percent, battery health, and discharge rate. Try battery_test 30 for a short snapshot that reports watts or percent per hour.
Repeat the test while plugged in and on battery to compare. If health is significantly low, the runtime will be short and service may be needed. Omitting seconds runs a longer default window; press Ctrl + C to cancel early.
Update strategies and bandwidth control
Use update_over_cellular enable|disable to permit or block OS updates on mobile data. Enable it only if your plan has ample allowance.
Toggle p2p_update enable|disable to share updates locally. Run p2p_update –show-peers to audit which peers are active and how updates flow across the network.
| Action | Command | Why it matters |
|---|---|---|
| Quick battery snapshot | battery_test 30 | Shows charge, health, and discharge to judge runtime |
| Allow updates on cellular | update_over_cellular enable | Use when data plan is generous; saves delay in updates |
| Local update sharing | p2p_update –show-peers | Reduces WAN bandwidth for homes or classrooms |
Tip: Check storage_status before updates to avoid retries that drain battery. Exit when done and run these checks weekly for steady system health.
Bluetooth, Input, and Peripheral Checks
When peripherals act up, a few built-in tools reveal useful status and connection details. Use these checks before replacing hardware or installing apps.
bt_console: manage pairing and profiles
Open bt_console in the terminal and type help to list pairing, scan, block/unblock, and info options. Start with a quick scan, then pair a headset or keyboard using the shown command.
Use info to read supported profiles and signal strength. If audio drops or a keyboard lags, try removing and re-pairing the device inside the console to reset the state cleanly.
evtest: verify input hardware in real time
Run evtest to list available event devices. Pick the event number for your touchpad, mouse, or stylus to stream live input events.
Look for steady motion events on touchpads and clear press/release codes for mice. Irregular gaps or missing events point to hardware faults, low power, or a flaky wireless connection.
- If evtest shows nothing, check power switches, USB plugs, or Bluetooth status before assuming failure.
- Press Ctrl + C to stop a live stream, then test another device or exit.
- Pair these checks with top if input lag matches CPU spikes—resource pressure often mimics device problems.
| Tool | Primary use | Quick action |
|---|---|---|
| bt_console | Scan, pair, block/unblock | Type help then scan |
| evtest | Monitor input events | Select event number; observe motion or button codes |
| top | Check CPU causing lag | Identify high-CPU tasks; kill or restart |
Versions, Channels, and Developer Mode Essentials
Treat channel changes as a controlled experiment: document your current version, back up local files, and plan how to test after the move. That reduces surprises if something breaks.
Rollback reverts the system to the prior build. It triggers a Powerwash (factory reset) that erases local data and settings. Back up files to Google Drive or external storage before running rollback. Check whether your device is enterprise-managed, as some managed devices block rollbacks.
Using rollback safely and what Powerwash means for your data
Syncing your Google account restores apps and settings after a Powerwash, but unsynced local files are lost. Note the current version and any custom settings so you can restore them later. After a rollback, run diagnostics like network_diag and storage_status to confirm stability.
Canary channel caveats: stability, bugs, and Developer Mode requirements
The canary channel (accessed by the live_in_a_coal_mine command) delivers the earliest builds and experimental features. Switching to canary channel requires developer mode, which lowers some protections and may void certain support expectations.
Only developers and testers with a spare device should try canary channel. Expect frequent updates, intermittent failures, and time spent troubleshooting. For daily reliability, stay on Stable or use Beta/Dev for earlier access with fewer issues.
| Action | Impact | Who it’s for | Post-action check |
|---|---|---|---|
| rollback | Reverts OS; triggers Powerwash (data wipe) | Those needing to escape a bad update | Restore from backup; run storage_status |
| live_in_a_coal_mine (canary channel) | Bleeding-edge builds; high instability | Developers/testers on non-primary device | Run network_diag and monitor for issues |
| entering developer mode | Removes some security guards; required for canary | Advanced users comfortable with resets | Document settings; keep recovery plan ready |
Exit the terminal when finished and watch system behavior for several days before making more channel moves. Good notes and backups make recovery fast if updates cause unexpected issues.
Handy Utilities and Pro Tips for Everyday Use
Simple utilities help you gather useful info and act faster. This section focuses on quick wins you can use in a live session to check addresses, adjust the clock, and keep sessions tidy.
ipaddrs shortcuts, set_time formatting, and quick exits with exit
Use ipaddrs to get a full snapshot of network addresses and interfaces. Run ipaddrs -4 or ipaddrs -6 when you need a specific address family for router rules or VPN setup.
To set the clock manually, type set_time <date> <month> <year> <time>. For example: set_time 25 December 2023 12:00am. This natural format avoids mistakes when testing time‑sensitive services.
When you finish a session, type exit to close the terminal cleanly and avoid accidental input or long‑running tests.
help vs. help_advanced: building your own crosh command list
Type help for a short, readable list of core utilities. Use help_advanced when you need deeper diagnostics and extra flags.
Check help <command> to see accepted options before running anything. Many commands include useful flags that save time and give clearer output.
- Keep a small text file with favorites like ping, network_diag –wifi, battery_test 30, top, and storage_status for quick copy/paste.
- Note the interface shown by ipaddrs (Wi‑Fi vs. Ethernet) to speed troubleshooting.
- Pair uptime with these checks to decide if a reboot is due before deeper tests.
| Quick check | When to run | Benefit |
|---|---|---|
| ipaddrs -4 / -6 | VPN or router config | Shows specific family address and interface |
| set_time example | Time sync issues in tests | Sets clock with clear fields |
| help vs. help_advanced | Learning new utilities | Builds a personalized command list |
Tip: Treat these tools as a lightweight toolkit. Run quick checks, gather just enough data, then act. With a short personal list, everyday fixes take far less time.
Conclusion
Practice a handful of checks and you’ll spot issues before they slow you down. Use the built‑in command prompt to run quick tests like ping, network_diag –wifi, and ipaddrs to isolate a connection problem fast.
Routine health checks save time: run battery_test <seconds>, memory_test with meminfo, and storage_status for S.M.A.R.T details. Inspect top and uptime to find rogue processes or long sessions that need a reboot.
Be safe when changing channels or rolling back. Backup data before a rollback (Powerwash), treat the canary channel as experimental, and use update_over_cellular or p2p_update to control updates and bandwidth.
Keep a short favorites list, use help and help_advanced, and press Ctrl + C to stop long tests. With a few fast routines in crosh, you get clear details and fix most system, memory, battery, and input issues without extra tools.
FAQ
How do I open the Chrome shell to run commands?
Press Ctrl + Alt + T to launch the Chrome shell. That opens a simple prompt where you can type help, help_advanced, or any supported command.
What command shows my Chromebook’s IP addresses?
Use ipaddrs -4 for IPv4 or ipaddrs -6 for IPv6. The output lists addresses assigned to each interface.
How can I test network reachability to a website?
Run ping <website> to check packet loss and round-trip times. Stop the test with Ctrl + C.
When should I use network_diag instead of ping?
Use network_diag for a full diagnostic that gathers logs, Wi‑Fi details, and traceroute info. Use ping for quick connectivity checks.
How do I trace the route packets take to a host?
Use tracepath <website>. It shows each hop and latency so you can spot routing or ISP issues.
How do I lookup DNS records from the shell?
Run the dns command to perform DNS lookups. It helps troubleshoot name resolution problems.
What command runs a memory diagnostic?
Use memory_test to run an on-device memory check. For quick memory stats, try meminfo or free.
How can I view running processes from the terminal?
The top command lists active processes with CPU and memory usage—useful for finding resource hogs beyond the Task Manager.
How do I check battery health and discharge rate?
Use battery_test <seconds> to run a short battery diagnostic. It reports health, charge cycles, and discharge behavior.
Can I manage system updates over cellular from the shell?
Yes. Use update_over_cellular enable or disable to allow or block updates over cellular data.
How do I toggle peer-to-peer update sharing?
Use p2p_update enable or p2p_update disable to control peer-to-peer OS update sharing on your local network.
What options exist for cellular modem management?
Type modem help to list modem commands, view status, and configure cellular features like APN with set_apn or set_cellular_ppp.
How do I enable or disable Canary channel from the shell?
The shell can indicate channel info, but switching channels—especially Canary—requires Developer Mode and system settings. Canary is unstable and may require a Powerwash.
What does rollback do and does it affect my files?
A: rollback reverts to the previous ChromeOS version. It triggers a Powerwash, which removes local user data, so back up files first.
How can I inspect Bluetooth devices and pair from the terminal?
Use bt_console to open the Bluetooth console. From there you can scan, pair, list devices, and block or unblock connections.
How do I test input devices like a stylus or trackpad?
Run evtest and select the device you want to inspect. It shows input events in real time for troubleshooting.
Where do I find storage health info from the shell?
Use storage_status for an overview or storage_test_1 to run S.M.A.R.T.-style tests on internal drives.
How can I set the time manually via the shell?
Use set_time with the proper format to adjust date and time. Correct formatting is required and system policies may block manual changes.
What help commands show available crosh features?
Type help for basic commands, help_advanced for extended options, or help <command> for details on a specific command.
Are there quick exits or cancels for long-running tests?
Yes. Press Ctrl + C to cancel most running commands. Use exit to leave the shell when finished.
