How do I import from Enpass or 1PIF on Linux?

The password manager I used to use recently updated to a new version, which has rendered it unuseable for me (not a figure of speech), so I figured I'd give 1Password a try. So I installed 1Password X on Chrome under Ubuntu 18.04.1. The first thing I need to do, of course, is import my passwords from Enpass.

1Password's importer doesn't support this directly, and Enpass doesn't export to CSV. So after quite a bit of searching, downloading @MrC's converter (also not available for Linux, but I suppose it's Perl so let's try it), installing Perl and associated modules, configuring CPAN, installing more Perl modules, reading the docs, and so on, I manage to convert an Enpass JSON export to a 1pif file with:

perl convert.pl -v enpass ~/Desktop/enpass_export.json

Okay great! Now I have a 1PIF file. Let's go to the "Import" screen oh no:

If you already have data saved in a 1Password vault elsewhere, you can transfer it into this account using one of our native apps.

Well, there's no native app for Linux. So I read the docs for the command line client, op, but there's no mention of import functionality.

Reading @MrC's MCR documentation more closely shows that it has a 1Password converter, intended for exporting a 1pif file to eg. CSV. It says I need to do this with the --format option:

The output formatting is controlled by the formatter specified using the --format option. Provide a formatter name (the name of a file in the Formatters folder, without the file suffix). Example: --format html_expanded.

So maybe if I convert the Enpass JSON to a 1Password 1PIF and then that to a generic CSV, that will work? I try it with:

perl convert.pl -v onepif ~/Desktop/1P_import.1pif --format csv
Use of uninitialized value $n in concatenation (.) or string at
/home/redacted.org/username/Downloads/mrc-converter-suite-2019-03-10-1118/mrc-converter-suite/./Utils/Utils.pm line 58 (#1)
(W uninitialized) An undefined value was used as if it were already
defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
To suppress this warning assign a defined value to your variables.
To help you figure out what was undefined, perl will try to tell you
the name of the variable (if any) that was undefined. In some cases
it cannot do this, so it also tells you what operation you used the
undefined value in. Note, however, that perl optimizes your program
and the operation displayed in the warning may not necessarily appear
literally in your program. For example, "that $foo" is usually
optimized into "that " . $foo, and the warning will refer to the
concatenation (.) operator, even though there is no . in
your program.
Use of uninitialized value $_[1] in numeric eq (==) at
/home/redacted.org/username/Downloads/mrc-converter-suite-2019-03-10-1118/mrc-converter-suite/./Utils/Utils.pm line 42 (#1)
Imported items
Exported 0 total items

Hmmmmmm.

So, at this point I'm stuck. 1Password comes highly recommended from a number of sources, so I'm eager to give it a try, and I am always reassured by a company that charges an ongoing fee because it gives me a some degree of confidence that the servers will stay on. But this has not been a smooth experience so far.

Am I approaching this wrong? Is there a better way to get data out of Enpass and into 1Password (that isn't "open literally every website in Enpass and let 1Password capture it?" ... although admittedly it might have been faster than what I've tried so far)? @MrC, are you still maintaining the converter, and is there somewhere I should be filing bug reports for it? Or, since 1Password are recommending this tool, are they supporting it instead? You can assume that I don't have access to a Windows or OS X machine; I would have just switched to that if it were an option. Does that mean 1Password is just the wrong tool for me, and I should move on and try another password manager with a dedicated Linux app?

Comments

First, yes I still do maintain the converters, and have been doing so for over 4 years. In fact, I just created a new on Saturday.

The converter suite was designed for converting to 1PIF, for importing from a desktop 1Password app (macOS, Windows). But the converter runs on Linux too, and I've done a few conversions there. There are so many distributions, that I don't bother to creating documentation for running the converter there. And with no desktop 1Password there, your situation is rare.

The op CLI isn't meant for importing via 1PIF. As soon as op is ready to support importing with as much fidelity as 1PIF, I'll support direct import via op for those who want to use this. I've asked for this.

The onepif converter in the converter suite was designed for converting to a format for printing (via HTML) and for simple CSV conversion (a format-er could do about just about anything). Convert from Enpass > 1PIF > CSV would be somewhat loose, and was never designed to import back into 1Password. It was meant to be compact.

didn't work because you don't have the converter name earlier on the command line. The converter name onepif needs to come first, since it also provides the additional option --format (convert.pl knows nothing about this option). The format you used was the csv format, and this also happens to be a converter name too. I do peek to find the converter name, but in this case, I cannot know which one would be the converter (onepif or csv).

Thanks for the converters, good to know they're still maintained. Re this:

The converter name onepif needs to come first, since it also provides the additional option --format (convert.pl knows nothing about this option).

I figured that much out from the error message, but it didn't occur to me that the flag needed to go immediately after the converter. You might want to add an example to the documentation of invocation where extra converter flags are used.

Having said all that, this seems like... a lot of work. I know I said I'm happy to pay a fee, but it seems like Linux usage is a total afterthought for 1Password. I mean, it can't even import its own format, which is frankly bizarre. I use my password managers for a lot of non-web passwords, so having no native app adds to the difficulty (it's not a deal-breaker, but makes it less worth the cost).

1Password don't have to do anything for Linux, of course. They have to make decisions about what's cost-effective for their time. But it's a red flag for me because I don't want to waste time and money again. The last two password managers I tried to use had the same attitude and after paying for the privilege to use them, well, a short time later the "afterthought" became no thought at all, and here I am again (already in a bad mood to boot because I'd rather just be doing my actual work than migrating password managers).

Welcome to the forum, @detly! I'd say you're in excellent hands with @MrC, but you probably already figured that out.

1Password don't have to do anything for Linux, of course. They have to make decisions about what's cost-effective for their time. But it's a red flag for me because I don't want to waste time and money again. The last two password managers I tried to use had the same attitude and after paying for the privilege to use them, well, a short time later the "afterthought" became no thought at all...

In the same vein, you should do what's in your own best interest as well, of course. But one of the main reasons we never created a native Linux client (low market-share plus limited developer hours and (to a lesser extent) too many flavors of Linux to support) is the same reason I think both your assessment of "afterthought" and your fear of that "becoming no thought at all" are misplaced.

We didn't create 1password.com and the 1Password X extension for Chrome and Firefox primarily to capture the Linux market. We created the 1password.com backend originally to overcome what we saw as some of the main limitations of standalone password management, chief among them having to rely on (and attempt to provide support for) a multitude of 3rd-party sync solutions that we had limited visibility into and no control over. 1Password X is something that probably never could have existed prior to 1password.com accounts, and it's existence is very much a part of 1password.com, for good -- not just an attempt to capture Linux users (and other platforms where Chrome or Firefox is available), but for our Windows and Mac users who've never had and don't want a native app but prefer to use 1Password as an entirely online, in-browser experience. In short, 1Password X isn't going anywhere for the foreseeable future, and it will only improve.

Whether that adds up to you being willing to stick it out, I can't say. If you prefer or insist on a native application, well, I'll be honest: that's still probably in the "someday, maybe" category. But if 1Password X and a 1password.com account meets your needs, I wouldn't worry about it becoming abandonware. Feel free to ask any questions you might have.

1Password X is something that probably never could have existed prior to 1password.com accounts, and it's existence is very much a part of 1password.com, for good

Unifying your platform like this is a good idea! It's cost effective for your developer time, and low friction for your users. I like the prospect of being able to easily share account credentials between separate 1Password accounts. I get it! But you have to actually... unify things. Currently 1Password X does not support data interchange using 1Password's own format, which means there's no common denominator for users to migrate their data.

On this:

low market-share plus limited developer hours and (to a lesser extent) too many flavors of Linux to support

Also understood, which is why no native app isn't a deal-breaker for me. But if you're already using a cross-platform approach for native apps on other platforms (no idea if you are, but I mean eg. embedded web interface or a cross-platform toolkit), it could be possible to target one or two major distributions, which usually lowers the barrier for using it on others.

Currently 1Password X does not support data interchange using 1Password's own format, which means there's no common denominator for users to migrate their data.

1Password X is tightly connected to your 1Password.com account, which means you can import your data at https://my.1password.com/import. This isn't as ideal as importing directly from the extension, but it might help make the transition easier. Having said that, it unfortunately isn't possible to export data via 1Password.com yet, so you do make a good point here.

It could be possible to target one or two major distributions, which usually lowers the barrier for using it on others.

Perhaps this is something we could consider in the future, but I don't see it happening any time soon. We first want to make sure 1Password X gives you the best 1Password experience it can.