After moving to Apple Silicon, somehow the Terminal still returns i386 for arch. (Terminal.app info's 'Open using Rosetta' is unchecked). It looks like some setting is preserved from the backup.

One way to work around it is to launch a new shell with the following:

env /usr/bin/arch -arm64 /bin/bash --login

How can I make arm64 the default?

  • How do you check what arch Terminal is - isn't what you are testing the program you are running in Terminal - which ones are i386 (Also isn't Intel x86_64 - i386 is 32 bit Intel which is very odd to see on Apple Silicon) We need to know more about your setup.
    – mmmmmm
    Apr 5, 2023 at 8:34
  • 1
    Which shell binary are you running in Terminal? Is this binary universal or just compiled for Intel?
    – nohillside
    Apr 5, 2023 at 8:43
  • 1
    Does this answer your question? Why does `arch` output `i386`?
    – Allan
    Apr 5, 2023 at 14:08
  • Thanks for the replies
    – pharsfalvi
    Apr 5, 2023 at 14:48

1 Answer 1


It looks like the default login shell was /usr/local/bin/bash.

$ echo $SHELL
✔ ~ 
$ arch

The list of available shells can be checked using:

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.


Changed the Login shell to /bin/bash:

$ chsh -s /bin/bash
Changing shell for xxxxx.
Password for xxxxx: 

Switching to /bin/bash as above and relaunching Terminal solved the problem

$ arch

It is also possible to set the Login shell on the Preferences of the Terminal.app, choosing Shells open with: Command and adding here the desired shell.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .