
Show HN: Terminal, a sandboxed command-line interface for iOS - louisdh
https://github.com/louisdh/terminal
======
louisdh
This project is open source:
[https://github.com/louisdh/terminal](https://github.com/louisdh/terminal)

------
basdp
This is just a very simple frontend to this library:
[https://github.com/holzschu/ios_system](https://github.com/holzschu/ios_system)

That library is just a simple implementation of some basic commands. It does
not do any executable execution, it does not use the real system utilities.
Nor does it has anything to do with Bash, or shell scripts. It’s just
basically one big ‘switch’ for all commands, which are implemented in the app
itself.

~~~
bradknowles
So, kinda like BusyBox?

~~~
basdp
Except busybox allows execution of external binaries. And BB is much (MUCH)
more complete. Let that sink in.

------
judge2020
Glad to see the developer who reserved the name was able to put it to good
use. Almost all built-in MacoS app names have been taken on the iOS store [1].

[1] [https://judge2020.me/rmTqJ5XV.png](https://judge2020.me/rmTqJ5XV.png)

------
renchap
Seems great! Any plans to include ssh and/or mosh?

~~~
alsetmusic
> Any plans to include ssh and/or mosh?

I saw this mentioned on a blog that I read only last night:

Blink Shell: Mosh & SSH by Carlos Cabanero

[https://itunes.apple.com/us/app/blink-shell-mosh-
ssh/id11567...](https://itunes.apple.com/us/app/blink-shell-mosh-
ssh/id1156707581?mt=8&uo=4&at=10I4Fv)

It’s $20, so I haven’t tried it yet. UI looks good and reviews seem positive.
I am not affiliated with the app or dev.

~~~
bradknowles
It is expensive, but it looked really good so I was willing to give it a try.
We'll see how it works out.

------
kennethfriedman
In the past, it was against App Store Guidelines to have interpreters in an
app. Is that no longer the case?

Could there be an app that has a Python interpreter built into it, so that the
logic of the app used Python, with just a Swift/ObjC UI on top of it?

~~~
julien_c
Yes, there are multiple apps built around a Python interpreter (Quik by GoPro
is one that I know of).

I think that policy changed around 2011.

------
goerz
Very nice so far! Could this run an actual shell (bash), with support for a
.bashrc (aliases!) and readline?

Could there be compatiblity wrappers for rsync/scp, falling back to curl?

I'm also not that into green on black. Any plans for themes?

~~~
Spooky23
Check out pythonista. It can do many of the things you are talking about,
except in Python!

~~~
goerz
Yeah, my point exactly! If Pythonista can be on the app store, then why not a
full shell?

~~~
glhaynes
You can't fork() in App Store apps. Which is why all of the commands on the
linked Terminal app are built-ins. So a bash-like of sorts could be made to
work, but it would be very different and quite limited.

~~~
brians
You can’t fork a kernel thread. The hard part, and the value, of such an app
would be a userspace fork() to a simulated thread.

~~~
glhaynes
I'm not sure what you mean - what's the relevance of a kernel thread (or
threads in general) here?

------
miles
This is awesome - thank you! Love being able to download files via curl and
search with grep under iOS. Any chance of adding a basic text editor (vi,
pico, or even ed) and maintaining history across launches?

~~~
louisdh
I think having a separate app for editing files makes more sense on iOS.
There's iVim, for example
([https://itunes.apple.com/us/app/ivim/id1266544660?mt=8](https://itunes.apple.com/us/app/ivim/id1266544660?mt=8)).
Maintaining history sounds like a neat feature, thanks for your feedback!

~~~
goerz
Would it be possible to have an 'open' command that opens any file in their
respective app? Maybe even configurable aliases like 'vim' to open files in a
specific app (iVim) -- hence my other comment about support for a .bashrc

~~~
Spooky23
I think you can use curl to accomplish that for many apps. That’s the secret
sauce of Workflow.

~~~
goerz
Great idea! Definitely calls for aliases, though.

------
goerz
Another idea: would it be possible to mount cloud providers (Dropbox, iCloud,
etc)?

~~~
Bud
Can't see how. Like all iOS apps, it's sandboxed.

~~~
goerz
Any app can access e.g. Dropbox directly, no? It'd just have to "display" it
as a filesystem. Probably too much work..

~~~
Bud
You said "mount". I took you literally. (Got downvoted for it too; no idea
why.)

~~~
goerz
What I had in mind was basically FUSE (like
[https://github.com/joe42/CloudFusion](https://github.com/joe42/CloudFusion)).
I don't think it would violate sandboxing, but it's probably very non-trivial
to implement in this kind of app

------
7ewis
It's cool, but are there any practical uses for this?

~~~
goerz
My person impression is: not really at this time. But it's a pretty amazing
proof of concept, and could grow into something immensely useful (a full local
shell). I'm really glad this is open source, so there is the potential for
people to contribute more substantial functionality.

------
bocklund
Looks like it requires iOS 11

------
nextstep
Why is it rated “age 17+”?

~~~
ken
It says on the next line: "Unrestricted Web Access". The App Store rules say
if you can use it to download arbitrary web content, it's gotta be 17+.
Otherwise, age restrictions would be pretty much meaningless.

------
5_minutes
With the (apple.com) it looks like an official release

~~~
ben174
Yea. And the name is very similar to MacOS’s Terminal.app which is developed
by Apple. Might want to update the title to reflect that it’s third party.

~~~
dang
OK, we've changed to the project page on Github. Submitted URL was
[https://itunes.apple.com/app/terminal/id1323205755?mt=8&at=1...](https://itunes.apple.com/app/terminal/id1323205755?mt=8&at=1010lII4).

