How to open Tabnine Hub on a headless server?
zhyu opened this issue · comments
I know run the command CmpTabnineHub
actually starts an app listens on port 5555, I could use ssh port forwarding to access it. However, I think the hub needs to be accessed via localhost:5555/a-random-string
, so without knowing the random string, the webapp doesn't load.
Could cmp-tabnine
get response from tabnine server and print the connection string after running CmpTabnineHub
?
I don't think TabNine supports this.
As TabNine uses xdg-open
with the url, you can circumvent the issue by having your own xdg-open
available in your PATH
before starting nvim, and logging the arguments sent to it to solve your issue.
Good point about xdg-open
, I will give it a try later.
Before switching to nvim-cmp
, I have been using coc.nvim
. And the extension to coc.nvim
for Tabnine is https://github.com/neoclide/coc-tabnine, which configures Tabnine via special commands. It does tell me the URL I should visit to open the Hub:
So I think maybe the server responses to the config call with the URL somehow?
So I tried to dump the response from Tabnine after sending the config command to it, and got the following:
{
message = {
reason = "Couldn't start web browser at http://127.0.0.1:5555/sec-fxdeccwilpzmniggbpdi. See https://tabnine.com/faq#browser_failed"
},
status = "Failure"
}
Accessing the URL above with ssh port forwarding works as expected.
I think it's possible for the plugin to handle the response and display it.
I just found if we send quite = true
when opening the hub, TabNine returns the following:
{
message = "http://127.0.0.1:5555/sec-ssgemthelgmbjhgpscax",
status = "Success"
}
So one alternative is: having a new command other than CmpTabnineHub
(or let user config the behavior) to start the server without calling xdg-open
, and then tells user the URL.
Maybe it's better than #59, @tzachar what do you think about it?