kubernetes-sigs / kui

A hybrid command-line/UI development experience for cloud-native development
Apache License 2.0
2.82k stars 183 forks source link

Is there any general purpose framework can build hybrid command line and GUI app like KUI #7867

Closed link89 closed 2 years ago

link89 commented 3 years ago

The idea of kui is awesome and I am just wondering is there any general purpose UI framework that can build the tools like kui does.

starpit commented 3 years ago

Howdy! Can you help me to understand better what you are suggesting? Kui has a plugin model, and so in a way is such a framework. But I think you are asking something different? Thanks!

link89 commented 3 years ago

Yeah. I think what makes KUI great is its UX design that it combines the best qualities of both command line and GUI. What I want to know is there any general purpose framework that allow me to build web app with similar experience of KUI.

kferrone commented 3 years ago

KUI is a terminal app based on Electron. So here is a framework for building terminal apps with Electron: https://hyper.is/ Also this one too: https://www.electronjs.org/apps/extraterm And this one: https://github.com/mflorence99/el-term Oh and this one too: https://xtermjs.org/

starpit commented 3 years ago

@link89 I'm still not sure what you are after. 🤔 Can you help me to understand your use case, so we can see if it fits into Kui's existing extension/enhancement mechanisms?

Kui does have a set of APIs that let you consume Kui's core features as npm modules (e.g. npm install @kui-shell/core). You may then extend Kui, by adding custom commands (e.g. to enhance your own CLI), or by customizing the theming (e.g. to use a custom app icon, custom colors, custom application name).

An example of doing this is in the "AnimalApp" app located here. With this approach, you can customize Kui without having to clone&own anything. You may then create our own double-clickable downloads, or a docker container for hosted client-server deployments.

starpit commented 3 years ago

The Kui wiki has additional detail on creating custom Kui clients.

starpit commented 3 years ago

As to @kferrone's comment. These are all great projects! The goal of Kui is to provide graphical enhancement to the command execution model of terminals. So, with Kui you may "attach" command handlers to the read-eval-print loop of the terminal, and instead of presenting ASCII responses, you may do ... other things, such as provide arbitrary React responses, or table responses or tabular/multi-tab responses, etc.

starpit commented 3 years ago

We have externalized the example client into a github template repo: https://github.com/kui-shell/KuiClientTemplate

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

k8s-ci-robot commented 2 years ago

@k8s-triage-robot: Closing this issue.

In response to [this](https://github.com/kubernetes-sigs/kui/issues/7867#issuecomment-1036414859): >The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. > >This bot triages issues and PRs according to the following rules: >- After 90d of inactivity, `lifecycle/stale` is applied >- After 30d of inactivity since `lifecycle/stale` was applied, `lifecycle/rotten` is applied >- After 30d of inactivity since `lifecycle/rotten` was applied, the issue is closed > >You can: >- Reopen this issue or PR with `/reopen` >- Mark this issue or PR as fresh with `/remove-lifecycle rotten` >- Offer to help out with [Issue Triage][1] > >Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community). > >/close > >[1]: https://www.kubernetes.dev/docs/guide/issue-triage/ Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.