{"id":17799485,"url":"https://github.com/polettix/app-onepif","last_synced_at":"2025-04-02T04:12:27.466Z","repository":{"id":56831093,"uuid":"77930204","full_name":"polettix/App-OnePif","owner":"polettix","description":"Read 1Password Interchange Format exports","archived":false,"fork":false,"pushed_at":"2017-01-06T18:42:27.000Z","size":215,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-07T18:53:20.334Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polettix.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-03T15:41:28.000Z","updated_at":"2019-10-24T17:01:56.000Z","dependencies_parsed_at":"2022-09-09T18:01:18.167Z","dependency_job_id":null,"html_url":"https://github.com/polettix/App-OnePif","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polettix%2FApp-OnePif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polettix%2FApp-OnePif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polettix%2FApp-OnePif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polettix%2FApp-OnePif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polettix","download_url":"https://codeload.github.com/polettix/App-OnePif/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246752652,"owners_count":20827987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-27T12:07:26.487Z","updated_at":"2025-04-02T04:12:27.449Z","avatar_url":"https://github.com/polettix.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\n1pif - Read 1Password Interchange Format exports, interactively\n\n# VERSION\n\nversion 0.1.0\n\n\u003cdiv\u003e\n    \u003ca href=\"https://travis-ci.org/polettix/App-OnePif\"\u003e\n    \u003cimg alt=\"Build Status\" src=\"https://travis-ci.org/polettix/App-OnePif.svg?branch=master\"\u003e\n    \u003c/a\u003e\n\n    \u003ca href=\"https://www.perl.org/\"\u003e\n    \u003cimg alt=\"Perl Version\" src=\"https://img.shields.io/badge/perl-5.10+-brightgreen.svg\"\u003e\n    \u003c/a\u003e\n\n    \u003ca href=\"https://badge.fury.io/pl/App-OnePif\"\u003e\n    \u003cimg alt=\"Current CPAN version\" src=\"https://badge.fury.io/pl/App-OnePif.svg\"\u003e\n    \u003c/a\u003e\n\n    \u003ca href=\"http://cpants.cpanauthors.org/dist/App-OnePif\"\u003e\n    \u003cimg alt=\"Kwalitee\" src=\"http://cpants.cpanauthors.org/dist/App-OnePif.png\"\u003e\n    \u003c/a\u003e\n\n    \u003ca href=\"http://www.cpantesters.org/distro/A/App-OnePif.html?distmat=1\"\u003e\n    \u003cimg alt=\"CPAN Testers\" src=\"https://img.shields.io/badge/cpan-testers-blue.svg\"\u003e\n    \u003c/a\u003e\n\n    \u003ca href=\"http://matrix.cpantesters.org/?dist=App-OnePif\"\u003e\n    \u003cimg alt=\"CPAN Testers Matrix\" src=\"https://img.shields.io/badge/matrix-@testers-blue.svg\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n# EXAMPLE\n\nRun within a 1Password Interchange Format export directory (_caution_, it\nis **NOT** encrypted).\n\n    shell$ 1pif\n    1password\u003e help\n    Available commands:\n    * quit (also: q, .q)\n       exit the program immediately, exit code is 0\n    * exit [code] (also: e)\n       exit the program immediately, can accept optional exit code\n    * file [filename] (also: f)\n       set the filename to use for taking data (default: 'data1.pif')\n    * types (also: ts)\n       show available types and possible aliases\n    * type [wanted] (also: t, use, u)\n       get current default type or set it to wanted. It is possible to\n       reset the default type by setting type \"*\" (no quotes)\n    * list [type] (also: l)\n       get a list for the current set type. By default no type is set\n       and the list includes all elements, otherwise it is filtered\n       by the wanted type.\n       If type parameter is provided, work on specified type instead\n       of default one.\n    * print [ \u003cid\u003e ] (also: p)\n       show record by provided id (look for ids with the list command).\n       It is also possible to specify the type, in which case the id\n       is interpreted in the context of the specific type.\n    * search \u003cquery-string\u003e (also: s)\n       search for the query-string, literally. Looks for a substring in\n       the YAML rendition of each record that is equal to the query-string,\n       case-insensitively. If a type is set, the search is restricted to\n       that type.\n\n# DESCRIPTION\n\nThis program allows you to look into a 1Password Interchange Format\ndirectory exported (again, beware it is **NOT** encrypted!). When you run\nit inside a such directory, it will read the relevant `data.1pif` file to\nget the list of all records, and allow you to browse through it.\n\nThe only real command you have to know is `help`, as it will provide you\nall details on the available commands. See [\"EXAMPLE\"](#example) for an... example.\n\nTo get a list of records, use the `list` command (abbreviate it to `l`).\n\n    1password\u003e list\n    passwords.Password\n         1 Foo\n         2 Bar\n         ...\n    securenotes.SecureNote\n         5 Whatever\n         6 Hello all...\n         ...\n    ...\n\nYou will notice that each record is associated to a numeric identifier,\nthat will be the same through the whole session.\n\n1Password assignes a type to each record. You can see which types are\navailable in your export through command `types` (abbreviated `ts`).\n\n    1password\u003e types\n    \u003c*\u003e                         * (accept any type)\n                             card (also: cards wallet.financial.CreditCard)\n                             form (also: forms webforms.WebForm)\n                          license (also: licenses wallet.computer.License)\n                             note (also: notes securenotes.SecureNote)\n                                p (also: password passwords passwords.Password)\n                 system.Tombstone\n            system.folder.Regular\n        system.folder.SavedSearch\n\nIf you only want to work with a specific type with the `list` or `search`\ncommands, you can set the desired type with command `type` (abbreviated `t`).\n\n    1password\u003e type passwords\n    1password\u003e list\n         1 Foo\n         2 Bar\n         ...\n\nThe `search` (abbreviated `s`) command does a literal search through a YAML\nrendition of each record. It's like using Perl's function `index`, so there\nis no regular expressions magic, apart that the search is performed without\ncaring for the case.\n\n    1password\u003e search foo\n         1 Foo\n\nWhen you want to look at a specific record, use command `print` (abbreviated\n`p`) with the numeric identifier of the record you're interested into:\n\n    1password\u003e print 1\n    ---\n    _id: 1\n    contentsHash: f87f3cd8\n    createdAt: 1234567890\n    location: 'Service or Application Name'\n    locationKey: 'service or application name'\n    secureContents:\n      password: you-wish\n    securityLevel: SL5\n    title: Foo\n    typeName: passwords.Password\n    updatedAt: 1234567890\n    uuid: FD7E562E94D447DCB8F3C3825F8471D9\n\nAll the fields you see come from the 1Password export, except for `_id` that\nis added by `1pif`.\n\nTo exit from the program, you can use either command `quit` (abbreviated with\n`q` or, if you use SQLite, also `.q`) or command `exit` (abbreviated `e`),\nin which case you can also pass an exit return code.\n\n# SEE ALSO\n\nOn GitHub you can find a few projects for dealing directly with the\noriginal, _encrypted_ version of the 1Password database. For example, you\nmight want to check out the following projects:\n\n- [https://github.com/georgebrock/1pass](https://github.com/georgebrock/1pass)\n- [https://github.com/oggy/1pass](https://github.com/oggy/1pass)\n- [https://github.com/robertknight/passcards](https://github.com/robertknight/passcards)\n\n# AUTHOR\n\nFlavio Poletti \u003cpolettix@cpan.org\u003e\n\n# COPYRIGHT AND LICENSE\n\nCopyright (C) 2016 by Flavio Poletti polettix@cpan.org.\n\nThis module is free software.  You can redistribute it and/or\nmodify it under the terms of the Artistic License 2.0.\n\nThis program is distributed in the hope that it will be useful,\nbut without any warranty; without even the implied warranty of\nmerchantability or fitness for a particular purpose.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolettix%2Fapp-onepif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolettix%2Fapp-onepif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolettix%2Fapp-onepif/lists"}