{ "info": { "author": "Wayne Werner", "author_email": "waynejwerner@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Office/Business", "Topic :: Utilities" ], "description": "A cli [TagSpaces][1] client, especially geared towards [The Secret Weapon][2]\napproach to Getting Things Done.\n\n# History\n\nA few months into 2017 I read Jon Westenberg's post about how [he uses\nEvernote][3] to keep track of all the things that he needs to do. In the article\nhe has some pretty golden advice:\n\n> Before I get into it though, I want to be clear. What I do might not work\n> for you. There is no golden key to productivity, and this is pretty\n> specifically designed to match my workflow and my personality.\n\nWhich is, of course, fantastic advice.\n\nWhile I'm sure Evernote is a fantastic tool with all the bells and whistles\nthat one could desire, it's not exactly *my* bells and whistles. I have a\nslightly different approach that I prefer. I'm much more into the command line,\nmainly because it's the easiest way to eliminate distractions. Yeah, you can\nturn off distractions in your browser and on your phone - but you actually have\nto turn *on* distractions on the command line. So I try to spend most of my\ntime here.\n\nAbout a year ago I also came across [TagSpaces][1], which has a philosophy I\nlove: just stick the information into the filename itself. Then it doesn't\nmatter what system you're using, the information is going to travel with the\nfile.\n\nAfter I read Jon's article, I started trying to use the TagSpaces client. It\nworked well enough, though it wasn't quite as keyboard-centric as I wanted.\nUsing Dropbox to sync my files worked great (though they still don't have a\nclient for the Raspberry Pi, grumble grumble).\n\nI toyed around with using the command line, `ls *1-now*` or `find . -name\n*3-soon*` worked pretty well, but it was still a bit clunky. Out of that need\ncame Shibboleth\n\n# Guide\n\nShibboleth is pretty simple. At the moment it only supports Linux-y systems\n(there's some weirdness on Mac OSX, with readline), but I'm always open to\n[pull requests][4]!\n\nAll you have to do is install shibboleth:\n\n> python3.6 -m pip install shibboleth\n\n(Come join me in the glorious future that is Python3.6! Or, if you think it's\nawesome and you live in some horrible reality that requires something ancient,\ndid I mention that I'm totally accepting [pull requests][4]?)\n\nOnce it's installed, just start it up in whatever directory you want to stick\nyour stuff. Maybe you do something like this:\n\n\n $ cd ~/Dropbox/\n $ mkdir secret-weapon\n $ cd secret-weapon\n $ mkdir completed\n $ shibboleth\n Welcome to Shibboleth, the tool designed to be *your* secret weapon.\n\n Your editor is currently vim. If you don't like that, you\n should change or set your EDITOR environment variable.\n\n \u21c0shibboleth:/home/wayne/Dropbox/secret-weapon\n > new\n Title: Try out shibboleth\n\nThat will launch your editor - whatever your `EDITOR` environment variable is\nset to. Or `vim`, if nothing is set. `:q` is how you get out of Vim, if\nthat's not your thing.\n\nSave and quit and you should come back to shibboleth:\n\n \u21c0shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315].md\n >show\n ********************************************************************************\n Trying out shibboleth, how does it work for me?\n\n ********************************************************************************\n \u21c0shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315].md\n >\n\nIt will automatically select the new file. You may notice that it changed the\nspaces for `-`. That's because readline is confusing and hard and doesn't\nlike autocompleteing spaces. But if you can make it do the right thing, did I\nmention I'm accepting [pull requests][4]?\n\nSo you can change the priority of your selected file/task with `priority`, or\nthe shortcut `p`.\n\n >p 1\n \u21c0shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315 1-now].md\n >\n\nYou can `deselect` to drop that, or `select` a different file. Or create\nanother `new` one:\n\n >new something completely different\n \u21c0shibboleth:/tmp/fnord/something-completely-different[20170406~013345].md\n >show\n ********************************************************************************\n A man with three legs!\n\n > 'e ran off!\n\n ********************************************************************************\n \u21c0shibboleth:/tmp/fnord/something-completely-different[20170406~013345].md\n p 4\n \u21c0shibboleth:/tmp/fnord/something-completely-different[20170406~013345 4-later].md\n >\n\nYou can use `ls` to list all the files in the directory, `cd` to change\ndirectory. Or if you just want to see what you're supposed to be doing now:\n\n > now\n trying-out-shibboleth[20170406~013326 1-now].md\n \u21c0shibboleth:/tmp/fnord/trying-out-shibboleth[20170406~013326 1-now].md\n >later\n something-completely-different[20170406~013345 4-later].md\n \u21c0shibboleth:/tmp/fnord/trying-out-shibboleth[20170406~013326 1-now].md\n >\n\nOnce you're done with a thing, you can `compelete` it, or be `done` with\nit:\n\n >done\n \u21c0shibboleth:/tmp/fnord\n >cd completed\n \u21c0shibboleth:/tmp/fnord/completed\n >later\n something-completely-different[20170406~013345 4-later].md\n\nThat's really about all there is to it. The way I use this is\n\n- start up shibboleth\n- check my `waiting` list to see if there's anything I need to move out of\n waiting.\n- Go through `someday`, `later`, `soon`, and `next` to see if anything\n needs to be bumped up.\n- Decide which of `now` I need to work on the most, then `s` elect it. I\n may `edit` it to add some notes or just `show` to review what I'm\n supposed to be doing. Then when I finish that I mark it `done` and move on\n to the next.\n\nAs new tasks come in via email, etc. I go ahead and add new ones. I've been\nusing shibboleth as the interface for my tasks for about a day now and it works\n*great* for shifting the priority, creating new tasks, and editing ones that\nI've got.\n\nIf you've got any suggestions about what would make shibboleth (more) awesome,\nI'm happy to work with you to get your [pull request][4] in. Or if I've got\nsome time or I think it's a killer feature, I'm sure I'll add it to my own\nlist. Using shibboleth, of course :)\n\nPhilosophy\n----------\n\nI would prefer to keep this as 3rd-party-dependency-free as possible. I'm not\nopposed to adding some kind of plugin architecture, but I *really* want\nshibboleth to stay one single file. That way you can just stick it in a\ndirectory and you're good to go.\n\nPlugins\n-------\n\nI've added a plugin architecture! Currently it requires plugins to be found in\n`~/.shibboleth/plugins`. Plugins will be attached to Shibboleth's main loop as\nif they were methods, using the filename as the name of the command. For\ninstance, if you wanted to add a really bad pomodoro timer, you could do that\nby creating a `pom.py` in the plugin directory that contained the following:\n\n import time\n\n\n def handle(self, line):\n print('Pomodoro', line)\n time.sleep(60*20) # sleep for 20 minutes\n print('Pomodoro done!')\n\nIf you wanted to make it drop straight into the editor you could add:\n\n self.edit('')\n\nAt the end of the function.\n\n\nTODOs\n-----\n\n- ~~Add BSD license~~ - Done 2018-10-01\n- ~~Add other tag support~~ - Done 2018-10-01\n- config. We want to be able to config shibboleth, right? Different colors and\n what-not.\n\nCHANGELOG\n---------\n\n## [Unreleased]\n\n---\n\n## [0.5.0] - [2019-10-15]\n\n### Added\n\n- `work` subcommand, to allow you to quickly process a particular priority. By\n default, it will work `1-now`, but `work 2` will work the \"next\" tasks.\n- `version` command, to display the current version of shibboleth.\n\n### Changed\n\n- Updated how prompt is generated. Shouldn't cause an issue, but something to\n be aware of, especially in plugins.\n\n## [0.4.1] - [2019-10-14]\n\n### Changed\n\n- `cmdloop` passes on `*args` and `**kwargs` - useful for running loops from\n plugins.\n\n## [0.4.0] - [2019-07-31]\n\n### Added\n\n- Review command that lets you cycle through your tasks, updating priorities.\n\n### Changed\n\n- Duplicate tags are no longer allowed, though if added outside Shibboleth they\n will not be interfered with.\n\n## [0.3.0]\n\n### Added\n\n- Plugin system. Add `.py` files to `~/.shibboleth/plugins` to extend the\n functionality of Shibboleth.\n- Keep a changelog functionality for the changelog.\n\n\n[1]: https://www.tagspaces.org/ \"TagSpaces\"\n[2]: http://www.thesecretweapon.org/the-secret-weapon-manifesto/manifesto-part-1-the-issue \"The Secret Weapon Manifesto\"\n[3]: https://medium.com/hi-my-name-is-jon/how-i-use-evernote-to-pitch-at-the-top-of-my-game-2c5966ef720b\n[4]: https://github.com/waynew/shibboleth#fork-destination-box\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/waynew/shibboleth", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "shibboleth", "package_url": "https://pypi.org/project/shibboleth/", "platform": "", "project_url": "https://pypi.org/project/shibboleth/", "project_urls": { "Homepage": "https://github.com/waynew/shibboleth" }, "release_url": "https://pypi.org/project/shibboleth/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.5.0" }, "last_serial": 5976427, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9cf2f826e8582af0504914febc709e46", "sha256": "029707283cbd7f6837043cd4e71e91c617419762e7428f7941bea4b54034141a" }, "downloads": -1, "filename": "shibboleth-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9cf2f826e8582af0504914febc709e46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 956, "upload_time": "2017-04-05T15:24:11", "url": "https://files.pythonhosted.org/packages/36/ec/2a0b426ede5dfc9469ee398ef4e0cce8efc3499c028fbf84f1c599a57375/shibboleth-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f9e664bd103864419a62372258939b8a", "sha256": "b67dc99a9267f0984bfc890aa5f6f344db8205c282ade5b244e9fcc678e99e5e" }, "downloads": -1, "filename": "shibboleth-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f9e664bd103864419a62372258939b8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2646, "upload_time": "2017-04-05T15:32:12", "url": "https://files.pythonhosted.org/packages/0f/f2/6363bb87d552203807bf837a8555dc69071689d3641ca8b2daee7764f3a0/shibboleth-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "9aee962fc856328670608037f7d6d456", "sha256": "b692082a452a0b688d6b8ba48a245819e6ffb27e008e70bca8de51f1d42c8027" }, "downloads": -1, "filename": "shibboleth-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "9aee962fc856328670608037f7d6d456", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5251, "upload_time": "2017-04-06T13:46:23", "url": "https://files.pythonhosted.org/packages/b5/f4/23136f8b78b17593501f840d943bf386053c74d2d7a46396f47403b1de8d/shibboleth-0.1.10-py3-none-any.whl" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "fe617a744e5c7ea70b2cd33e38d8b383", "sha256": "0ab7c21c89cd4d8d269665881a47d1af0d76087f15ae29e4c9ca7742832a282c" }, "downloads": -1, "filename": "shibboleth-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "fe617a744e5c7ea70b2cd33e38d8b383", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10958, "upload_time": "2017-04-06T16:29:22", "url": "https://files.pythonhosted.org/packages/a9/a5/1eae5ba0873eea2776ef58154084f7e713109cae61e12c598fcd415e55e8/shibboleth-0.1.11-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "eb6d4b5124523be5a241d4cb02ec8941", "sha256": "150e107493f935da079a28e93197ba9b3919b4512242993ee412fc2a2b12875d" }, "downloads": -1, "filename": "shibboleth-0.1.2.tar.gz", "has_sig": false, "md5_digest": "eb6d4b5124523be5a241d4cb02ec8941", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2592, "upload_time": "2017-04-05T15:36:13", "url": "https://files.pythonhosted.org/packages/76/2b/7065f904d518f1cf0c93bf09e6fa206986e6eeca83c03b71c2f5f23c92be/shibboleth-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "97d64e548ae89631b0395eb9fa54c7a6", "sha256": "cfa55071ed71973da0c5e932e2d133273818efd99b59f400974133d2b6b856f0" }, "downloads": -1, "filename": "shibboleth-0.1.3.tar.gz", "has_sig": false, "md5_digest": "97d64e548ae89631b0395eb9fa54c7a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2771, "upload_time": "2017-04-05T18:46:21", "url": "https://files.pythonhosted.org/packages/3a/41/6c14bfffd96c1e7ec68adf720859615e0cae7c19536ca5206c60fa5497fb/shibboleth-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "fe8603ed084cd2d521634cfdd28cda1f", "sha256": "cc81d86029c32ead59d429774b182a1a7f1aa7e2b47f555b74fcf3c025c3b50b" }, "downloads": -1, "filename": "shibboleth-0.1.4.tar.gz", "has_sig": false, "md5_digest": "fe8603ed084cd2d521634cfdd28cda1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2907, "upload_time": "2017-04-05T18:56:40", "url": "https://files.pythonhosted.org/packages/75/7d/88ac0ae54655e7a5a7820ceb10169d0d940f270c72ea5939c18342598c4c/shibboleth-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "86366724b6de4aa82773629543dc6a80", "sha256": "c97fa7d3cc9ff2c3f7f41e8bca869f2974d2699a59ad70d0afdddfc766cc700e" }, "downloads": -1, "filename": "shibboleth-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "86366724b6de4aa82773629543dc6a80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4215, "upload_time": "2017-04-05T20:07:18", "url": "https://files.pythonhosted.org/packages/24/f1/82fae910aee416f9964290ae188a667b654942891a2b14443c638a2fcdec/shibboleth-0.1.5-py3-none-any.whl" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "a2e4dafb4cb0a23cc11fe2136e792f12", "sha256": "14028cadf9159533c36f1460ab39ccaef4d015b9c2e9405a55c190c831c98044" }, "downloads": -1, "filename": "shibboleth-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a2e4dafb4cb0a23cc11fe2136e792f12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4832, "upload_time": "2017-04-05T21:53:14", "url": "https://files.pythonhosted.org/packages/04/29/6012b4ad45b6c01bec589c8510b9045c2629e623acea7c5b51847ee2461d/shibboleth-0.1.7-py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "4fc83b7b01a66a7f0d87702057b7d80c", "sha256": "36fde6b2553f95681c6d5394550a56e32c38a3123f4a7fc09aa174d8eca5d114" }, "downloads": -1, "filename": "shibboleth-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "4fc83b7b01a66a7f0d87702057b7d80c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4994, "upload_time": "2017-04-05T22:12:58", "url": "https://files.pythonhosted.org/packages/77/c8/56c0fed6b42933730f3352fef9120ee2cf2d3b66df0626288e6027eeed04/shibboleth-0.1.8-py3-none-any.whl" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "5cdaa18bf37e95b26561213e3c5656bd", "sha256": "a0fb58d220dfc0a16818e1011c5d91e4d1f518fa34a1d9ff2565e06bc3609235" }, "downloads": -1, "filename": "shibboleth-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "5cdaa18bf37e95b26561213e3c5656bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5198, "upload_time": "2017-04-06T01:55:23", "url": "https://files.pythonhosted.org/packages/4f/27/8cacb04050e32b7457cd9316bc1e172302366d2dffbfdcdf0fd4d5e8bed2/shibboleth-0.1.9-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7e906fe2ec4cb8b45c15b2216ec2a774", "sha256": "ee890324621a526aaca34f918a388292b27dade77a220ce7deb1fd078bbe70e1" }, "downloads": -1, "filename": "shibboleth-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7e906fe2ec4cb8b45c15b2216ec2a774", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9432, "upload_time": "2018-10-01T17:42:56", "url": "https://files.pythonhosted.org/packages/87/80/41c141d09503cfa7291d9c1e9bd08cdb8b00fcd1d905965dd6fffca695e4/shibboleth-0.2.0-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "bf99d520f7656de3c02c8c6c45b97b09", "sha256": "4b66330bbf5164b44598b6080a5865f25f2d078527442fe2100527f37fe16ec7" }, "downloads": -1, "filename": "shibboleth-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bf99d520f7656de3c02c8c6c45b97b09", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12190, "upload_time": "2018-10-01T18:04:30", "url": "https://files.pythonhosted.org/packages/f7/56/227b07d3d610c0c0f035266f24cd6a68c3ac4ace5f2e0eda61afa5ef1487/shibboleth-0.2.1-py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "feda3b124d4308bc21c43c302ad9df6e", "sha256": "f3cb1e1048fbfe6c4cd3dead632d5466f43a85bc241ac01992f8af890cbabc41" }, "downloads": -1, "filename": "shibboleth-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "feda3b124d4308bc21c43c302ad9df6e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10383, "upload_time": "2019-07-24T00:44:50", "url": "https://files.pythonhosted.org/packages/b8/d2/e42731f1772bb34b181cde8610576c61c5c8f3e956bd2fcb86d53dba7b99/shibboleth-0.3.0-py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "3f73776652e0ea1190efa009ce7deb66", "sha256": "84477eb233c75b593f826e14e00673f4effa755ba3b714b9fef6a16e51c80f85" }, "downloads": -1, "filename": "shibboleth-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3f73776652e0ea1190efa009ce7deb66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11223, "upload_time": "2019-08-01T04:52:20", "url": "https://files.pythonhosted.org/packages/ab/fd/17349fbf4ca8dcbd05ea5f2779457385398dec631c71adc86a2e821703ff/shibboleth-0.4.0-py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "f39d562a7092a6eac50fa8000b3dc301", "sha256": "db014a97396673f9ac2061448212fd1588368ba5e74e4d44aab8a4931899cba9" }, "downloads": -1, "filename": "shibboleth-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f39d562a7092a6eac50fa8000b3dc301", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11280, "upload_time": "2019-10-14T23:06:02", "url": "https://files.pythonhosted.org/packages/83/fe/46554fc9b386de628aa829287061b092371fb264f1080f8e7d25735a9197/shibboleth-0.4.1-py3-none-any.whl" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "2bc6f701744641431b04d13a3ade98c4", "sha256": "f20f354e2269c0b4fa880ee639f37676ed7d6db670f8bfb8da5621402bfdd6e4" }, "downloads": -1, "filename": "shibboleth-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2bc6f701744641431b04d13a3ade98c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12101, "upload_time": "2019-10-15T11:42:05", "url": "https://files.pythonhosted.org/packages/d0/aa/12682e2259d6bec2f4af6d70d9a093913bfa799b40baeb21446141f7e95c/shibboleth-0.5.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2bc6f701744641431b04d13a3ade98c4", "sha256": "f20f354e2269c0b4fa880ee639f37676ed7d6db670f8bfb8da5621402bfdd6e4" }, "downloads": -1, "filename": "shibboleth-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2bc6f701744641431b04d13a3ade98c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12101, "upload_time": "2019-10-15T11:42:05", "url": "https://files.pythonhosted.org/packages/d0/aa/12682e2259d6bec2f4af6d70d9a093913bfa799b40baeb21446141f7e95c/shibboleth-0.5.0-py3-none-any.whl" } ] }