I have seen this phrase written with and without a hyphen. Why is that? In which instances is which one right? What verb does "viens" come from anyway?
Viens is the 2nd person singular imperative present of the verb venir: to come.
I would not put a hyphen in “Viens là”, I can't see any reason to do so. Viens et là are two well separated words, as in “Come here”.
Although the rules governing the French hyphenation may be confusing sometimes there is not viens-là. It is viens là sans hyphen.
You can learn more for the french imperative here
The verb and the pronoun are linked together with a hyphen in the affirmative imperative.
Excusez-moi. (Excuse me.) Aide-nous. (Help us.)
There are cases when both direct and indirect object pronouns are present. During these scenarios, the DIRECT OBJECT PRONOUNS always come BEFORE the INDIRECT OBJECT PRONOUNS.
Donnez-la-nous! (Give it to us!) Prête-les moi! (Lend them to me!)
But là is but an adverb like here, there and the like. No need for hyphens. There are indeed some webpages using viens-là but this is not correct french. It is just (I guess) for help the users to memorize the link and for https convenience:-)!
As a french, the "là" comes with an hyphen in "Viens-là" or when it follows a verb or a noun.