Wow. Really cool. I wasn't expecting something so polished.
JIRA speed drives me crazy sometimes, so a couple of months ago I decided to build myself a tool to do instant searches/filters on multiple projects right from the browser just to scratch my own itch.
I just wanted to see if I could have near-instant filtering. I think I got a pretty decent performance by using some JS tricks. I'm sure there might be ways to make it even faster.
Page is around 70kb (HTML+CSS+JS). Everything is manually crafted. I know the design won't win a beauty contest, but it does feel instant and works for my personal use-case. I had a lot of fun building this side-project.
There is a public URL, feel free to try it out [1]. Already mentioned in a previous comment in HN a while ago [2].
For the record, it uses a proxy because of CORS. Proxy is in few lines of golang. No NPM or any other framework used to make the project. In any case, if anybody is interested in the source code to run it yourself I'm happy to make the project public. Trusting a proxy on some random's guy on internet is probably a bad idea, given all NPM shit that happened yesterday, in any case, if you want to try, feel free, but use at your own risk :P
Looks cool, but definitely a security team's nightmare. Putting an API key into some random HN'ers hobby project is a bad, bad idea, whoever you are (not saying you're a bad actor, but a zero-trust policy would agree with me).
Indeed. That's why I was transparent from the start. As I mentioned, using an API key this way is generally a bad idea. Even if I'm not a bad actor (which I'm not, but you shouldn't trust me), if someone compromises my server and forges requests, they could potentially access your projects.
JIRA's OAuth implementation requires apps to be registered, involves public/private key pairs, and changes the auth flow. That adds complexity and makes setup harder, which is why I opted for a simpler API key setup, you get the API key, you write it down, you can make requests. It is just simpler and does not require JIRA admin rights.
For comparison, JiraTUI also uses the user's API token. The difference, I guess, is that it runs locally on your machine, but they could also send it somewhere else. At the end of the day, it comes down to whether you trust what you're downloading versus trusting what runs on a remote server. It is true that locally you could potentially inspect all HTTPS or even TCP requests whereas in the remote server you don't have a clue.
The thing is, OAuth in JIRA demands app registration and certificate management, so I guess many developers end up defaulting to user API keys as the path of least resistance, even if they encourage OAuth as well.
I desparately want something like this for Github.
I appreciate the value of the web browser providing the universal "quick" GUI (as in "I can open it on most devices and instantly interact"), but for power users I really wish more people were shipping things that helped out people not afraid to learn a bunch of keyboard commands
Nothing prevents a Web app from having good keyboard shortcuts; Gmail and Linear are great examples.
GitHub becomes much more comfortable with the Refined GitHub extension. It adds a bunch of keyboard shortcuts, among a ton of other small improvements.
> Nothing prevents a Web app from having good keyboard shortcuts; Gmail and Linear are great examples.
I think nothing prevents a web app from having keyboard shortcuts, but more often than not what I see is web apps having bad keyboard shortcuts that hijack the browser's natural behavior (taking over <ctrl>-f is a good example). I think often people go at this as if it's an Electron app and not a browser that has literally a hundred other interfaces loaded into it, leading the user to have certain expectations.
All that aside your Gmail example is spot on, and I'm one of those google-hatin' dudes.
Yes, the unfortunate tradition of hijacking Ctrl+F is annoying. OTOH the forming tradition to use Ctrl+K to show a command palette / command line is commendable.
The presented TUI is a full UI for simply browing Github, the Github CLI is not that.
Notice how I can list with `gh pr list` but then will need to run a full new command to actually inspect the contents of those PRs. I think an interactive interface would be nice!
This is cool. I'm not a fan of TUIs at all (poor man's GUI if you ask me) but anything beats the Jira website trash.
I will definitely be curious to see how much of Jira's abysmal performance is due to the website design (got to be a fair bit given how badly things like drag and drop perform) and how much is due to the server.
What I like about TUIs are that they are forced to be simple, and are forced to load all data at once. I don’t prefer interacting with an app in a terminal window, but I do prefer the kinds of apps that are built with these constraints in mind.
There’s nothing preventing web apps from being built this way, but they just often are not.
I consider it the frugal man's GUI. Right now looking at top, any time I load a browser tab with Jira content chromium spikes to the top of the list. I'm not even doing anything with it.
One question. Is there any way that if I click a JIRA link somewhere, like email or Slack, that it could open in the TUI instead of in the browser? I just can’t imagine that being possible.
Its possible- you'd have to register a new uri handler to call the TUI (it'll need to take cli args to load the link/issue), then rewrite Jira links (tampermonkey script/browser extension) to use the new uri.
I do have some complaints about the Jira web ui (in particular it seems finding correct issues can be difficult), though maybe nothing too severe.
For me the most useful thing would be a cli tool (not tui) to just add stories. This way I could just write a bunch of stories in a text file (..or an .org file..) with the conveniences of my editor and upload them. Seems jiratui actually comes with some cli tools as well, but it doesn't seem this is yet included, or it's not just documented yet. I'll give a shot to this..
Now I'm doing that by copypasting the entries from the file, one by one, to the fields in the web ui, and not all of the fields can be copy pasted, and then updating also the file to have the correct issue ids so I can use them for finding issues with e.g. grep. Naturally this will only work for my stories, and won't synchronize with changes made in Jira.
Looks amazing! Does anyone know of TUI libraries for Rust or Go that achieve this level of polish? I've tried bubblegum, ratatui, tview but none of these seem to match the sleek, polished look of Textual.
Brilliant. Really nice looking TUI.
One thing I noticed is that I still find myself using the mouse to click the form fields. The keyboard navigation seems to sometimes get stuck on fields and I then can't move around anymore. Is there an easy trick for jumping between the fields?
It’s awesome! I wrote a TUI for Jira for my own use, with extra stats like average time spent on tasks and counts of issues or bugs per epic. But yours looks so nice and polished—thanks for sharing your work!
Tangential: I feel that CLI is in vogue again. Does anyone else sense that pendulum swinging again? Is it just me?
I've sensed for years from colleagues or blog posts etc a drive to go deeper and lower in the stack. I attributed this to the huge amount of front end devs who feel detached from the "real" stuff because of layers of frameworks. Not derisively, I think it's great. Even coworkers will express this to me.
This is what I suspect helped Rust skyrocket in the zeitgeist, too. It's got a lot of modern conveniences but it targets the more difficult areas like embedded, drivers, kernel, or performance critical code. And you can justifiably rewrite things (debatable but whatever).
A way in!
https://cancel.fm/ripcord/ Ripcord isn't exactly this but it's fairly close. Hasn't been updated in 4 years though... when I messed with it in the past it felt nice!
is there something like this for Asana, I hate their UI and UX. Their keyboard shortcuts are based off `Tab` key being a "modifier" which makes absolutely no sense.
It's incredibly slow and they keep shovelling crap at users:
- You highlight text and up pops an icon to "Use AI to summarise this?"
- You use a short-cut only to find that it has changed
- And it is just generally really slow
JIRA web eats all my memory on Firefox, so laggy that pressing a button takes 3 or 5 seconds, not to mention page transitions. It only becomes usable when I add the uBlock Origin rule[1]:
I hate how Atlassian products hijack regular browser features and re-implement them in JS. When I open our Confluence page, it runs a bloated mess of 10MB of JavaScript. All of their WYSIWYG editors are terrible and I'm constantly fighting the formatting. Just let me input regular markdown already.
TUIs are usually the most snappy interfaces you can have. Pure bliss in comparison. To their credit, at least Atlassian provides usable APIs.
I still dont understand why there is no unified UI for a lof of ticketing systems, I'm so tired of popping into different teams and its a night and day difference between how things are configured.Just give me a kanban board.
Sometimes the org is so big, nobody wants to put any effort into knowing who the admin even is.
Nowadays I'm in ADO, I still want a unified UI for any and all ticketing systems that allows me a consistent UI regardless of JIRA or even ADO. I'm tired of so many different workflows that make no sense.
Wow. Really cool. I wasn't expecting something so polished.
JIRA speed drives me crazy sometimes, so a couple of months ago I decided to build myself a tool to do instant searches/filters on multiple projects right from the browser just to scratch my own itch.
I just wanted to see if I could have near-instant filtering. I think I got a pretty decent performance by using some JS tricks. I'm sure there might be ways to make it even faster.
Page is around 70kb (HTML+CSS+JS). Everything is manually crafted. I know the design won't win a beauty contest, but it does feel instant and works for my personal use-case. I had a lot of fun building this side-project.
There is a public URL, feel free to try it out [1]. Already mentioned in a previous comment in HN a while ago [2].
[1] https://jetboard.pausanchez.com [2] https://news.ycombinator.com/item?id=44740472
For the record, it uses a proxy because of CORS. Proxy is in few lines of golang. No NPM or any other framework used to make the project. In any case, if anybody is interested in the source code to run it yourself I'm happy to make the project public. Trusting a proxy on some random's guy on internet is probably a bad idea, given all NPM shit that happened yesterday, in any case, if you want to try, feel free, but use at your own risk :P
Related: https://isanybodyusingthisprivatekey.com/
Haha, cool site
Looks cool, but definitely a security team's nightmare. Putting an API key into some random HN'ers hobby project is a bad, bad idea, whoever you are (not saying you're a bad actor, but a zero-trust policy would agree with me).
Indeed. That's why I was transparent from the start. As I mentioned, using an API key this way is generally a bad idea. Even if I'm not a bad actor (which I'm not, but you shouldn't trust me), if someone compromises my server and forges requests, they could potentially access your projects.
JIRA's OAuth implementation requires apps to be registered, involves public/private key pairs, and changes the auth flow. That adds complexity and makes setup harder, which is why I opted for a simpler API key setup, you get the API key, you write it down, you can make requests. It is just simpler and does not require JIRA admin rights.
For comparison, JiraTUI also uses the user's API token. The difference, I guess, is that it runs locally on your machine, but they could also send it somewhere else. At the end of the day, it comes down to whether you trust what you're downloading versus trusting what runs on a remote server. It is true that locally you could potentially inspect all HTTPS or even TCP requests whereas in the remote server you don't have a clue.
The thing is, OAuth in JIRA demands app registration and certificate management, so I guess many developers end up defaulting to user API keys as the path of least resistance, even if they encourage OAuth as well.
BTW, just to make it clear, in the case of jiratui you can also download from github repo directly and inspect the code if you wish :D
> they could also send it somewhere
Run JiraTui in a container / bubblewrap, and only allow it to connect to the Jira API host:port.
Wouldn’t that mean they could still exfiltrate it to another jira site they control?
Yeah, oauth would be better.
I desparately want something like this for Github.
I appreciate the value of the web browser providing the universal "quick" GUI (as in "I can open it on most devices and instantly interact"), but for power users I really wish more people were shipping things that helped out people not afraid to learn a bunch of keyboard commands
Nothing prevents a Web app from having good keyboard shortcuts; Gmail and Linear are great examples.
GitHub becomes much more comfortable with the Refined GitHub extension. It adds a bunch of keyboard shortcuts, among a ton of other small improvements.
> Nothing prevents a Web app from having good keyboard shortcuts; Gmail and Linear are great examples.
I think nothing prevents a web app from having keyboard shortcuts, but more often than not what I see is web apps having bad keyboard shortcuts that hijack the browser's natural behavior (taking over <ctrl>-f is a good example). I think often people go at this as if it's an Electron app and not a browser that has literally a hundred other interfaces loaded into it, leading the user to have certain expectations.
All that aside your Gmail example is spot on, and I'm one of those google-hatin' dudes.
Yes, the unfortunate tradition of hijacking Ctrl+F is annoying. OTOH the forming tradition to use Ctrl+K to show a command palette / command line is commendable.
https://cli.github.com/ ?
The presented TUI is a full UI for simply browing Github, the Github CLI is not that.
Notice how I can list with `gh pr list` but then will need to run a full new command to actually inspect the contents of those PRs. I think an interactive interface would be nice!
I think you could probably whip something very basic and crude up with fzf and the “—-preview” flag
I'm not a github power user but check out Lazygit (https://github.com/jesseduffield/lazygit)!
Not satisfied with your IDE integration? There are some github plugins for nearly every IDE I can think of.
https://github.com/dlvhdr/gh-dash
Github's UI used to be usable, at least.
For reviewing PRs I use Octo.nvim
[dead]
This is cool. I'm not a fan of TUIs at all (poor man's GUI if you ask me) but anything beats the Jira website trash.
I will definitely be curious to see how much of Jira's abysmal performance is due to the website design (got to be a fair bit given how badly things like drag and drop perform) and how much is due to the server.
What I like about TUIs are that they are forced to be simple, and are forced to load all data at once. I don’t prefer interacting with an app in a terminal window, but I do prefer the kinds of apps that are built with these constraints in mind.
There’s nothing preventing web apps from being built this way, but they just often are not.
Could you expand on "and are forced to load all data at once"?
I consider it the frugal man's GUI. Right now looking at top, any time I load a browser tab with Jira content chromium spikes to the top of the list. I'm not even doing anything with it.
Sure but that's just because the Jira website is awful. There's no reason you couldn't design a more frugal version, or a native GUI that was faster.
The way drag and drop and most other updates block all UI interaction until the network response is infuriating.
[flagged]
Why the snark? It's a valid preference and he wasn't demanding anything.
I am absolutely going to try this.
One question. Is there any way that if I click a JIRA link somewhere, like email or Slack, that it could open in the TUI instead of in the browser? I just can’t imagine that being possible.
Its possible- you'd have to register a new uri handler to call the TUI (it'll need to take cli args to load the link/issue), then rewrite Jira links (tampermonkey script/browser extension) to use the new uri.
https://github.com/whyisdifficult/jiratui
I do have some complaints about the Jira web ui (in particular it seems finding correct issues can be difficult), though maybe nothing too severe.
For me the most useful thing would be a cli tool (not tui) to just add stories. This way I could just write a bunch of stories in a text file (..or an .org file..) with the conveniences of my editor and upload them. Seems jiratui actually comes with some cli tools as well, but it doesn't seem this is yet included, or it's not just documented yet. I'll give a shot to this..
Now I'm doing that by copypasting the entries from the file, one by one, to the fields in the web ui, and not all of the fields can be copy pasted, and then updating also the file to have the correct issue ids so I can use them for finding issues with e.g. grep. Naturally this will only work for my stories, and won't synchronize with changes made in Jira.
You can write your stories in csv (or vibe code a tool to do that) and then batch import the CSV.
Yes, back to Oracle Forms 3.0. Fastest and best versions of Oracle Forms, as long as you know the keyboard shortcuts.
Looks amazing! Does anyone know of TUI libraries for Rust or Go that achieve this level of polish? I've tried bubblegum, ratatui, tview but none of these seem to match the sleek, polished look of Textual.
Looks great. How tied is it to Jira? How hard would it be to make it usable for Linear and Github Projects as well?
I'd love to work with this. The normal web view is annoyingly slow. Too bad it is not compatible with Api v2 used by on-prem Jira instances.
Sadly, the author indicated it's unlikely to support v2
I want this but for Linear
https://github.com/markmarkoh/lt
I wrote lt as a TUI for navigating/searching Linear issues. It is read-only right now.
Very cool! Thanks for sharing. I've never written Rust but I've heard of ratatui - how do you like it?
Rust is a joy to work with 85% of the time. Ratatui was a fun and easy way to get a TUI up and running.
I’m just commenting for the algorithm gods to promote this post - this is cool!!
You're potentially doing the opposite. Upvote the post if you like it, but increasing the comment/vote ratio can cause a "controversial post" penalty.
Brilliant. Really nice looking TUI. One thing I noticed is that I still find myself using the mouse to click the form fields. The keyboard navigation seems to sometimes get stuck on fields and I then can't move around anymore. Is there an easy trick for jumping between the fields?
very cool! is there a jira gui for efficient bulk management? does this TUI do it?
Ha, I love this!
I have something similar for confluence. I'm the only known user though, it's probably full of bugs.
https://github.com/AdrianVollmer/Congruence
It’s awesome! I wrote a TUI for Jira for my own use, with extra stats like average time spent on tasks and counts of issues or bugs per epic. But yours looks so nice and polished—thanks for sharing your work!
Looks promising, but there's some limitations. It cuts off the list of assignees after a few hundred or so. JQL works though.
You have issues with hundreds of assignees?
At least on our instance there can only be one assignee, so I assume they are referring to the selection list of possible assignees.
Tangential: I feel that CLI is in vogue again. Does anyone else sense that pendulum swinging again? Is it just me?
I've sensed for years from colleagues or blog posts etc a drive to go deeper and lower in the stack. I attributed this to the huge amount of front end devs who feel detached from the "real" stuff because of layers of frameworks. Not derisively, I think it's great. Even coworkers will express this to me.
This is what I suspect helped Rust skyrocket in the zeitgeist, too. It's got a lot of modern conveniences but it targets the more difficult areas like embedded, drivers, kernel, or performance critical code. And you can justifiably rewrite things (debatable but whatever). A way in!
I wonder if this is related?
Could be wrong on all this, of course.
Looks cool and unnecessary :)
Looks absolutely necessary given how terrible Jira's UX is
This is so fantastic. I want something like this for slack...
https://cancel.fm/ripcord/ Ripcord isn't exactly this but it's fairly close. Hasn't been updated in 4 years though... when I messed with it in the past it felt nice!
is there something like this for Asana, I hate their UI and UX. Their keyboard shortcuts are based off `Tab` key being a "modifier" which makes absolutely no sense.
Very cool, thanks! I'll give it a shot in the near future
https://github.com/whyisdifficult/jiratui
Simply lovely, will try this out, thanks for sharing!
This is a very attractive TUI. Nice job!
Agreed. I wonder if it's a custom TUI engine or leveraging a framework?
They are using Textual.
https://textual.textualize.io/
thank you!
Looks like Textual[1] -- the buttons are always a giveaway
[1] https://github.com/Textualize/textual
Dunno, I put it in the title.
This is incredibly cool.
I think the only thing it's missing is the board view.
why, is something wrong with the jira web ui?
It's incredibly slow and they keep shovelling crap at users: - You highlight text and up pops an icon to "Use AI to summarise this?" - You use a short-cut only to find that it has changed - And it is just generally really slow
You can also see how badly the state changes are handled. Some elements flicker on every new letter typed. (They broke it twice at least)
JIRA web eats all my memory on Firefox, so laggy that pressing a button takes 3 or 5 seconds, not to mention page transitions. It only becomes usable when I add the uBlock Origin rule[1]:
[1] https://community.atlassian.com/forums/Jira-questions/Re-Re-...I hate how Atlassian products hijack regular browser features and re-implement them in JS. When I open our Confluence page, it runs a bloated mess of 10MB of JavaScript. All of their WYSIWYG editors are terrible and I'm constantly fighting the formatting. Just let me input regular markdown already.
TUIs are usually the most snappy interfaces you can have. Pure bliss in comparison. To their credit, at least Atlassian provides usable APIs.
Unfortunately, Textual, the TUI framework this uses, hijacks the mouse and regular terminal and GUI features and reimplements them poorly in Python.
It breaks everything from text selection to copy and paste.
It’s not your usual TUI framework. I tried using it yesterday to implement a simple console app — the damn thing even uses CSS for styling.
I remember using bitbucket API to open and close taskwarrior issues. Good times.
we need a TUI version of the AWS console :-)
good work :)
This is a really cool project! I'd be curious if maybe a poweruser could become more productive using this as opposed to using vanilla Jira.
...I also wonder if Atlassian might try acquire this for 600M? /s
I still dont understand why there is no unified UI for a lof of ticketing systems, I'm so tired of popping into different teams and its a night and day difference between how things are configured.Just give me a kanban board.
Get your Jira admin to configure it as Kanban :)
Sometimes the org is so big, nobody wants to put any effort into knowing who the admin even is.
Nowadays I'm in ADO, I still want a unified UI for any and all ticketing systems that allows me a consistent UI regardless of JIRA or even ADO. I'm tired of so many different workflows that make no sense.
But they all claim to be scrum / agile.