{"id":34344421,"url":"https://github.com/strumentiresistenti/tagsistant","last_synced_at":"2026-03-11T22:01:42.526Z","repository":{"id":24279632,"uuid":"27674236","full_name":"StrumentiResistenti/Tagsistant","owner":"StrumentiResistenti","description":"Semantic filesystem for Linux, with relation reasoner, autotagging plugins and a deduplication service","archived":false,"fork":false,"pushed_at":"2018-10-02T19:24:01.000Z","size":1488,"stargazers_count":322,"open_issues_count":23,"forks_count":29,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-12-21T07:58:07.519Z","etag":null,"topics":["filesystem","linux","reasoning","semantic","tagging","tags"],"latest_commit_sha":null,"homepage":"http://www.tagsistant.net","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StrumentiResistenti.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-07T15:19:29.000Z","updated_at":"2025-12-20T14:42:58.000Z","dependencies_parsed_at":"2022-08-22T14:00:23.602Z","dependency_job_id":null,"html_url":"https://github.com/StrumentiResistenti/Tagsistant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/StrumentiResistenti/Tagsistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrumentiResistenti%2FTagsistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrumentiResistenti%2FTagsistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrumentiResistenti%2FTagsistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrumentiResistenti%2FTagsistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StrumentiResistenti","download_url":"https://codeload.github.com/StrumentiResistenti/Tagsistant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StrumentiResistenti%2FTagsistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30404076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T21:51:19.558Z","status":"ssl_error","status_checked_at":"2026-03-11T21:50:57.892Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["filesystem","linux","reasoning","semantic","tagging","tags"],"created_at":"2025-12-17T23:24:48.293Z","updated_at":"2026-03-11T22:01:42.521Z","avatar_url":"https://github.com/StrumentiResistenti.png","language":"C","readme":"Tagsistant is a semantic file system for Linux, a personal tool\nto catalog files using tags (labels, mnemonic informations)\nrather than directories.\n\nTagsistant replace the concept of directory with that of tag, but\nsince it have to do with directories, it pairs the concept of tag\nwith that of directory. So within Tagsistant a tag is a directory\nand a directory is a tag.\n\nTo be more precise, this is not true with all the directories.\nFirst level directories are special. The one called `tags/` hosts\nall the tags. This means that every directory created inside it\nis infact a tag.\n\nAnother, called `store/`, hosts contents, like files. All the tags\ncreated inside `tags/` are available inside `store/`. To tag a file\nall you have to do is to copy it inside one or more directories\nunder `store/`.\n\nAnother special first level directory is `relations/`. Inside it\nyou can establish relations between tags using mkdir:\n\n```bash\n $ mkdir relations/music/includes/rock\n $ mkdir relations/rock/includes/beatles\n $ mkdir relations/beatles/includes/lennon\n $ mkdir relations/beatles/is_equivalent/the_beatles\n $ mkdir relations/lennon/requires/beatles\n```\n\nA reasoner follows the relations you establish to include objects\nas a result of your queries. This is an example:\n\n```bash\n $ cp ~/let_it_be.mp3 store/lennon/@/\n $ ls store/the_beatles/@/\n let_it_be.mp3\n```\n\nThe file `let_it_be.mp3` is tagged as `lennon`, which is included by\n`beatles`, which is equivalent to `the_beatles`, and so is listed.\n\nTagsistant also comes with a plugin API to extend its behaviour. Some\nplugins for `.ogg`, `.mp3`, `.xml`, `.html` and other formats are provided.\nWhat they do is add more tags to a file, using specific procedures.\n\nAnd if a file is copied inside Tagsistant twice, Tagsistant is able\nto pair the second copy with the first one, keeping it just one.\n\nMore information is available at: http://www.tagsistant.net/howto\n\nTo compile Tagsistant, clone this repo and do:\n\n```bash\n$ ./autogen.sh\n$ ./configure\n$ make\n```\n\nTo install Tagsistant, do:\n\n```bash\n$ make install\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrumentiresistenti%2Ftagsistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrumentiresistenti%2Ftagsistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrumentiresistenti%2Ftagsistant/lists"}