9 ms·
Google Cloud Platform’s new interactive CLI
- fouc 9y agoLOL @ the bright green on black terminal pictures. How shall I say it, it feels very "l33t". Too bad they didn't use more normal terminal colours, it would improve readability IMO.
- tyingq 9y agoIt's pretty normal and expected for those of us that spent significant time on an actual VT220 or similar. Maybe the choice was just driven by someone similar.
- zitterbewegung 9y agoIt also indicates that "this is a terminal" to someone generally browsing the page.
- jjeaff 9y agoOr maybe they are fans of The Matrix.
- musage 9y agoAmber would have the same pseudo-retro appeal, with the advantage of looking less crap, ironically. Personally, I think this is a huge deal because I'm still miffed about "flat design" and the deprecation of skeuomorphism.. except in a situations like this, where it brings nothing but ugly to the table. That's just adding insult to injury.
- ben_jones 9y agoWhat? The green on black contrast is really easy to read and blends well with other colors for syntax highlighting. It's a super common scheme among developers...
- monsieurbanana 9y agoI wouldn't say it's a common scheme. I've never seen someone use it IRL, only on pictures online. I do agree it's not a disagreeable contrast.
- mattlondon 9y agoIt is using my terminal's standard colour scheme here (grey on black, with "bold" text being white. I guess it just uses whatever theme your terminal is configured for.
- NathanKP 9y agoI don't think its a "l33t" thing its just cultural. A fair number of engineers grew up with old computers that looked like this: https://i.imgur.com/WERwVsS.jpg https://i.imgur.com/WERwVsS.jpg Personally I learned to code on an old cathode ray tube monitor with green text, hooked up to a Tandy 1000. The CRT made a lot of heat and emitted a faint electronic tonal noise when it was running. I think the use of green color in terminals today is kind of a throwback thing to those ancient devices. Even though I wouldn't really want to use an old CRT today I still remember the CRT I grew up using fondly as a much more "live" feeling device compared to modern electronics that are much colder, silent, and sterile bright. When I see a green text terminal it instantly feels familiar and comfortable, in the same way.
- puzzle 9y agoThe eyes are more sensitive to either yellow-green or blue-green, depending on whether there is light or little of it. Amber/orange/yellow was probably the second most popular choice for terminals back then.
- cat199 9y agoon the down side, if you work on one too long, it fries those particular cones in your eyes pretty good, at least in the case of green and if the contrast is too high.. my daily driver is grey-on-black these days for that reason, though I keep a warm-and fuzzy green-on-black with vt220 font and slow-baud emulator around for the occasional one-off shell command.
- LeonM 9y agoI've been using a green on black scheme for years now, imo it is the best color combination for low light environments.
- ThrowawayR2 9y agoAmber on black (à la DEC VT420 terminals and some early PC monochrome monitors) also works well in low light.
- thrill 9y agoThese aging eyes have configured all my CLI work (which is most of it) to use amber on black.
- zellyn 9y agoIs this an open-source library one could use to make one's own interactive tools? Just curious. Anyone have pointers? Edit: I am slightly familiar with this family of tools. I was curious if there was a pointer to exactly the one used here.
- oblio 9y agoI think this is quite popular: https://github.com/jonathanslenders/python-prompt-toolkit https://github.com/jonathanslenders/python-prompt-toolkit For Rust this library seems nice: https://github.com/kbknapp/clap-rs https://github.com/kbknapp/clap-rs (it generates autocompletion scripts for shells)
- deleted 9y ago[deleted]
- phjordon 9y agoIt's a pretty neat tool. I've played around with it a lot, and it's used in the aws-shell[0] to a very similar effect as the OP. (Disclaimer: I work for aws and have contributed to the aws-shell.) [0]: https://github.com/awslabs/aws-shell https://github.com/awslabs/aws-shell
- Arcsech 9y agoTo build on Rust's options, there's the Structopt library[0] that generates a CLI interface using clap-rs from an annotated struct, which is a very, very nice experience for making command line tools. [0]https://github.com/TeXitoi/structopt https://github.com/TeXitoi/structopt
- Chaosteil 9y agoI believe this looks awfully familiar to this: https://github.com/c-bata/go-prompt https://github.com/c-bata/go-prompt (which is based on the previously mentioned `python-promt-toolkit`)
- jmeyer2k 9y agoAWS also has something similar called AWS Shell: https://github.com/awslabs/aws-shell https://github.com/awslabs/aws-shell
- algorithmsRcool 9y agoAzure has one too https://docs.microsoft.com/en-us/azure/cloud-shell/overview https://docs.microsoft.com/en-us/azure/cloud-shell/overview
- colemickens 9y agoAn interactive CLI (this) is not the really at all the same thing as a JavaScript TTY connected to a container (Cloud Shell). (Though, Google does also have a Cloud Console that is comparable to Azure's Cloud Shell.)
- bjd145 9y agoCloud Shell has an interactive mode - https://docs.microsoft.com/en-us/cli/azure/interactive-azure-cli https://docs.microsoft.com/en-us/cli/azure/interactive-azure...
- colemickens 9y agoThat's the CLI (it's right there in the title of the article)... which yes, can be run from the Cloud Shell, as the Cloud Shell is just a bash docker container that has the CLI pre-installed, etc.
- e12e 9y agopython3 -m venv az.env source ./az.env/bin/activate pip install azure-cli az --help Although ms has a strange fetish for complicated installation, one might prefer running it from docker: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest https://docs.microsoft.com/en-us/cli/azure/install-azure-cli... https://pypi.python.org/pypi/azure-cli https://pypi.python.org/pypi/azure-cli
- cryptofun 9y agoWhile we're on the topic, Cool Retro Term is open source or free and so much fun to play with. I have a real thing for the amber monitors. I got to see some ancient ones still operating the world in my early career on the dying open outcry trading floors of the American Stock Exchange in the mid 2000s. LMGTFY: https://www.google.com/search?q=amber+monitor&tbm=isch&source=iu&ictx=1&fir=fSfNUPwGxeGIkM%253A%252CLlwr8x3vofq4uM%252C_&usg=__RCbknmO0-AkNOKAPEQDQJhy_kig%3D&sa=X&ved=0ahUKEwj-wa_GlvHZAhVPS60KHagxDSkQ9QEIKzAB#imgdii=rXdOkNyK8fLPnM:&imgrc=k03wa8hB-41R6M https://www.google.com/search?q=amber+monitor&tbm=isch&sourc...:
- 2fifty3 9y agoHere is a link to the github repo with the images and codebase: https://github.com/Swordfish90/cool-retro-term https://github.com/Swordfish90/cool-retro-term
- cat199 9y agoYes, I'm adding to the tangent here, but.. I use these 2: https://github.com/sjmulder/trickle https://github.com/sjmulder/trickle http://sensi.org/~svo/glasstty/ http://sensi.org/~svo/glasstty/ in combination with a regular terminal application to achieve my retro vt220 VAX/BSD UNIX goodness. Doesn't have the phosphor fade like the above, but still feels pretty 'right'.
- psychometry 9y agoStill requires Python 2.7, right? What year is it again?
- melq 9y agoDoes it? I don't see that written anywhere, and prompt-toolkit supports python3.
- psychometry 9y ago"Cloud SDK runs on Linux, Mac OS X and Windows, and requires Python 2.7.x." https://cloud.google.com/sdk/downloads https://cloud.google.com/sdk/downloads
- shankun 9y agoThanks for the feedback. We are actively working on Python 3 support. Stay tuned!
- kirubakaran 9y agoAre you sure? App Engine Standard Environment has had that on the "roadmap" forever. Almost 10 years in fact. https://issuetracker.google.com/issues/35876441 https://issuetracker.google.com/issues/35876441 http://www.googblogs.com/enhancing-the-python-experience-on-app-engine/ http://www.googblogs.com/enhancing-the-python-experience-on-...
- sigjuice 9y agoI just looked at the first animation. If I find myself typing commands this long, I know I'm doing it wrong.
- apetresc 9y agoYou must've not used the AWS or GCP CLI tools before... the commands are all very verbose with lots of mandatory parameters. There's really no way to avoid long commands.
- sigjuice 9y agoI have not. But I have used several other similar CLI tools. I prefer short programs of my own instead of long verbose commands.
- neuland 9y agoThis is an interesting accommodation to less terminal savvy users. I'm not interested personally. But, it's an interesting concept. In fact, I think it would be an interesting thing to standardize, like super-completion. Someone else in this thread mentioned that Amazon is working on a similar interactive shell [0], and there is a whole group of tools like this for database CLI's [1], including PostgreSQL, MySQL, MS-SQL, and VerticaDB. It's a shame that each of these projects have to somewhat re-invent the wheel (though prompt-toolkit does a lot of heavy lifting [2]). And it's even more of a shame that each of these tools require a seperate environment. So, you have to exit Google's interactive shell to do something in AWS. [0] https://github.com/awslabs/aws-shell https://github.com/awslabs/aws-shell [1] https://www.dbcli.co https://www.dbcli.co [2] https://github.com/jonathanslenders/python-prompt-toolkit https://github.com/jonathanslenders/python-prompt-toolkit
- sushisource 9y agoEh, I wouldn't say it's just for less terminal savvy users. Running -h, finding the command you want, putting it in, is slower than this method. No matter how skilled you are, if you aren't using GCP CLI all day every day you're gonna forget stuff and this is a quick and easy way to remember it.
- ehsankia 9y agoIt's definitely not for less terminal savvy users. If anything, it's for more savvy people, as less savvy people hardly use tab completion, hotkeys and vi/emacs mode. It's meant for power users. Tab completion makes you faster and more efficient. I do agree though that it should be standardized.
- therealmarv 9y agomissing good old googlecl which Google killed themselves by making OAuth2 mandatory and not beeing able to switch from OAuth1 to OAuth2 in their own command line tool: https://code.google.com/archive/p/googlecl/issues/573 https://code.google.com/archive/p/googlecl/issues/573
- optimusclimb 9y agoI wish they would spend more time finishing the halfway done projects they've started (and fully documenting them), rather than continue to launch new ones. For instance...Google CloudSQL - Great! Postgres - Beta...Postgres from AppEngine python...err, we'll get around to it, maybe. Just giving one example, but my point is - finish what you've started before making new. I think recent articles I've read about launching being the track to promotion explain some of the state of things within GCP.
- blackaspen 9y agoThis -- _so_ much. That was my first thinking as well. IAM in GCP is still half-baked. How about they finish that? I understand that GCP is a massive engineering effort with endless things going on in series, but core parts of their platform are still mediocre at best. I'd prefer not to see more hackweek projects on their blog.
- danielb-gcp 9y agogcp pm here - got time to chat?
- azurezyq 9y agoWhat feature do you need from IAM?
- sb8244 9y agoWe don't know if they have teams working on this or not...my guess is they do. What if it just takes a long time to ship those features to GA? Should they hold off on other features?
- ben_jones 9y agoI don't know if Google advocates horizontal movement to different orgs/teams specifically, or if its just anecdata I've picked up talking to Googlers and reading about their org structure, but I wonder if this and the promotional scheme of "launch and move on" has caused teams to splinter and lose serious velocity - becoming the direct cause to stuff like this. Personally I think Google App Engine has always had massive potential but has been at about 80% of its potential since its inception. EDIT: Also I don't want to take away from this press release, the CLI is awesome and its going to help a lot of people.
- dfcowell 9y agoFeels... PowerShellish.
- mwj 9y agoErr, how are they in ANY way similar?
- svolpe43 9y agoI made something even better. Its for AWS though: https://github.com/svolpe43/cfsh https://github.com/svolpe43/cfsh
- mcintyre1994 9y agoNice! I worked a little bit on something similar for Azure in PowerShell. PowerShell has a really cool feature where you basically implement the filesystem navigation API for your app in C# or similar - how to show a path, get its children etc., and then all the PowerShell built-ins just work when you point it there.
- svolpe43 9y agoThat is pretty cool! I had to write all that stuff from scratch.
- bradhe 9y agoThis is awesome, interactive CLIs are great for simple use cases. I hope they continue to have support for non-interactive scenarios so that automation can continue to work (apologies if I missed that in the article).
- shankun 9y agoThanks. Yes, this is completely additive to the existing SDK.
- mns06 9y agoDid anyone manage to get this to work with fish shell?
- robbyt 9y agoI tried this with kubectl, but it crashed... so I used gcloud feedback to send a stacktrace, it sent me to a page with a 400 response. Overall, seems a bit too early to start promoting this for any real use.