Dev Investigation Notes

Installed Termux but can't see your Downloads folder? Start with storage permissions

This is a translated article. Read the original in Korean ↗

I installed Termux (a terminal app for Android) to run formation, a web app for reviewing formations together alongside a video in a dance studio, on a single Android phone without a laptop. But even though I'd definitely put the project folder in the phone's Downloads folder, typing ls in Termux showed nothing, and I had no idea where to go with cd.

Conclusion

Right after installation, Termux starts out unable to see any of the phone's shared storage (Downloads, photos, and so on). You need to grant access first, in this order.

# 1. Request storage access permission (be sure to tap "허용" (Allow) in the popup)
termux-setup-storage

# 2. If you put it in the Downloads folder
ls ~/storage/downloads
# If it isn't there, start at the root of the phone's internal storage (the top level in the Files app)
ls ~/storage/shared

# 3. Enter the project folder → check for server.js → run it
cd ~/storage/downloads/formation/live
ls
node server.js

If you don't want to type the long path every time, it's better to copy the project into your Termux home directory.

cp -r ~/storage/downloads/formation ~/
cd ~/formation/live

When you get lost, three things are enough: pwd (where am I?), ls (what's here?), and cd ../cd ~ (go up/go home). Type a few letters of a folder name and press Tab to autocomplete it.

Situation

formation is a web app that overlays a grid on dance rehearsal videos and lets you mark dancers' positions to visualize formations and movement paths. It has a live feature: when one person (the leader) plays a video in the studio, everyone else connects on their own phone to watch the same point in the video together. This live feature requires a server running server.js with Node.js, and until then, that server had been running on a laptop.

In response to the question "Can a single phone handle both the server and the leader?", the initial answer was that on Android, installing Node through Termux lets one phone act as the server, leader, and hotspot . The steps for creating a local network with a hotspot had already been documented, and the Android-specific instructions covered installing Termux and running pkg install nodejs.

Symptom

After installing Termux, the user asked, "I don't know how to navigate to my directory" . This was their first time using a terminal, and they didn't even have a clear sense of what cd referred to.

Cause

Termux opens in its own independent home directory (~) inside Android's app sandbox. By default, it has no permission at all to access the phone's shared storage (Downloads, photos, and so on), so even if the formation folder is correctly placed in Downloads, Termux has no idea that folder exists . In other words, the problem isn't an inability to use cd; the path that cd could take hasn't been created yet.

That access is granted by running termux-setup-storage and allowing access in the Android permission popup. Only then does a gateway named storage appear in the home directory: ~/storage/downloads for Downloads and ~/storage/shared for the root of internal storage .

Fix

The procedure proposed in the session is the same as in "Conclusion" above :

  1. Run termux-setup-storage → allow access in the permission popup
  2. Check for the project folder with ls ~/storage/downloads; if it isn't there, broaden the search with ls ~/storage/shared
  3. Navigate to cd ~/storage/downloads/formation/live, then use ls to check that server.js exists
  4. Run node server.js
  5. (Optional) Copy it into the Termux home directory with cp -r ~/storage/downloads/formation ~/ to shorten the path for future use

Bonus — whether this procedure actually worked was never confirmed

Immediately after these instructions, the conversation shifted to data charges on the hotspot network . Within this session (59 turns in total), no turn confirms whether the formation folder was actually found or whether node server.js started successfully in Termux. So this article treats the steps only as "the procedure proposed by the assistant." termux-setup-storage and the ~/storage paths themselves are part of Termux's basic behavior and are unlikely to change anytime soon, but it's safest to keep in mind that details can vary by version.

Reporter's Notes — "It wasn't that cd didn't work. There was nowhere to go"

Park Doeun
You know that app for syncing videos in the rehearsal studio? I installed Termux to run the server on a single phone without a laptop, but I can't see the project folder I put in Downloads.
Jung Bada
Try cd Download. That's usually how you get there on Linux systems.

Park Doeun tries it.

Park Doeun
It says "그런 디렉터리 없음" (No such directory). Neither Download with a capital D nor lowercase download exists.
Jung Bada
Then the name must be different. Try downloads, with an s at the end.
Jung Haneul
Wait, if it were a naming issue, we should've started by running ls to see what's in the home directory. What's in there?
Park Doeun
It's just empty. There's literally nothing. Like a folder nobody's touched since installing Termux.
Park Dohyun
Then it's not a naming issue. Instead of guessing folder names, shouldn't we be asking whether the phone's Downloads folder is even accessible from here in the first place?
Jung Haneul
That could be right. Termux is an app, so it might not have been granted separate permission to see all the files on the phone.
Park Doeun
So how do I grant permission? Is it something I switch on in Settings?
Jung Bada
There should be a command for that inside Termux: termux-setup-storage
Park Doeun
I ran it. A popup appeared, and after I tapped Allow, a new folder named storage showed up in home.
Jung Haneul
That's the gateway, so now try ls ~/storage/downloads. Whether formation shows up there is the real answer

Park Doeun checks.

Park Doeun
...I'm typing it now. But the gateway is definitely open. There's a whole list of folders under storage.
Park Dohyun
The gateway being open and formation being in there are two different things. It wasn't that you couldn't use cd; there was no path to take in the first place. That much is right.
Jung Bada
And if formation isn't in there, that opens up another problem.
Park Doeun
For now, I'll try cd ~/storage/downloads/formation/live and use ls to see whether server.js is there.
Jung Haneul
If you don't see it, broaden the search with ~/storage/shared. You might have put it somewhere other than Downloads.
Park Dohyun
Once you find it, it's better to copy it into Termux home with cp -r, so you don't have to type that long path every time.
Jung Haneul
It's natural for "I can't see my files" to feel like a bug the first time you open a terminal. But if the app starts inside a sandbox, that means permission hasn't been granted, not that something is broken.