{"id":13433261,"url":"https://github.com/pranshuchittora/autarky","last_synced_at":"2025-04-05T07:01:41.197Z","repository":{"id":40795698,"uuid":"190775381","full_name":"pranshuchittora/autarky","owner":"pranshuchittora","description":"Liberating disk space from 📁 node_modules | Built with React","archived":false,"fork":false,"pushed_at":"2023-10-30T18:41:43.000Z","size":51914,"stargazers_count":362,"open_issues_count":29,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T06:04:20.146Z","etag":null,"topics":["cli","filesystem","hacktoberfest","javascript","macbooks","nodejs","redux","storage","storage-manager","typescript"],"latest_commit_sha":null,"homepage":"https://autarky.js.org/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pranshuchittora.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.me/pranshuchittora"]}},"created_at":"2019-06-07T16:24:28.000Z","updated_at":"2025-03-21T08:45:15.000Z","dependencies_parsed_at":"2023-02-07T02:31:25.424Z","dependency_job_id":"e8806593-6676-4ca1-9abd-4cf095f47d6d","html_url":"https://github.com/pranshuchittora/autarky","commit_stats":{"total_commits":75,"total_committers":5,"mean_commits":15.0,"dds":0.07999999999999996,"last_synced_commit":"9a2aa110ba2459e3e58cec104c4be59175a6b573"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pranshuchittora%2Fautarky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pranshuchittora%2Fautarky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pranshuchittora%2Fautarky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pranshuchittora%2Fautarky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pranshuchittora","download_url":"https://codeload.github.com/pranshuchittora/autarky/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299828,"owners_count":20916190,"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":["cli","filesystem","hacktoberfest","javascript","macbooks","nodejs","redux","storage","storage-manager","typescript"],"created_at":"2024-07-31T02:01:23.258Z","updated_at":"2025-04-05T07:01:41.140Z","avatar_url":"https://github.com/pranshuchittora.png","language":"TypeScript","funding_links":["https://www.paypal.me/pranshuchittora"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pranshuchittora/autarky/master/docs/assets/Banner.png\" /\u003e\n\u003c/div\u003e\n\n![npm](https://img.shields.io/npm/v/autarky)\n![downloads](https://img.shields.io/npm/dm/autarky?style=flat)\n![NPM](https://img.shields.io/npm/l/autarky)\n[![Dependabot](https://badgen.net/badge/Dependabot/enabled/green?icon=dependabot)](https://dependabot.com/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/ca50bed68e1c8f074c5f/maintainability)](https://codeclimate.com/github/pranshuchittora/autarky/maintainability)\n![GitHub stars](https://img.shields.io/github/stars/pranshuchittora/autarky?style=social)\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\" style=\"filter: drop-shadow(0px 0px 10px #222);\"\u003e\n\u003cimg width=\"95%\" src='https://raw.githubusercontent.com/pranshuchittora/autarky/master/docs/assets/Demo.gif'/\u003e\n\u003c/div\u003e\n\n## Installation\n\n```bash\n# npm\nnpm i -g autarky\n\n#yarn\nyarn global add autarky\n```\n\n## Usage\n\n```bash\n$\u003e autarky\n```\n\n## Why autarky\n\nIn today's world storage is comparatively costlier than compute. Majority of devs uses MacBooks and sadly MacBooks have pretty low storage (for base models). Hence filling up storage is quite often and we spend a lot of time picking stuff to be deleted.\n\n### Motivation\n\nIt's 2019 and I got ran out of storage in my laptop after a thorough analysis I found out that the majority of the storage is occupied by `node_modules`. As each project have a separate node_modules (duplication despite the same version).\n\nI also have a few projects which I touch once in a blue moon, hence they end up eating a lot of space. On the other hand, picking \u0026 removing `node_modules` manually is a tedious process. So I thought why not automate it.\n\n\u003cdiv  align=\"center\" style=\"filter: drop-shadow(0px 0px 10px #222);\"\u003e\n\u003cimg width=\"70%\"  src='https://raw.githubusercontent.com/pranshuchittora/autarky/master/docs/assets/heavy.png'/\u003e\n\u003c/div\u003e\n\n### How it works\n\nAutarky works by traversing all the child directories recursively relative to the current working directory (the place where you are executing autarky).\n\n1. Enter the time in months. Node modules older than the given time will be shown.\n2. Select the `node_modules` which you want to delete.\n3. Confirm deletion.\n4. Done! (No need to pay for more storage.)\n\n---\n\n## Internals\n\nAutarky is built with the latest open source technologies.\n\n1. UI - The user interface is written in React. Using the Ink's reconciler for rendering the react components.\n2. State Management - The challenge of sharing data b/w UI and the process is achieved using Redux.\n3. Heavy Computation - Large data crunching is done on child processes.\n\n### Building Blocks\n\n- [React](https://reactjs.org/)\n- [Redux](https://redux.js.org/)\n- [Ink](https://github.com/vadimdemedes/ink)\n- [moment](https://momentjs.com/)\n- [rimraf](https://github.com/isaacs/rimraf)\n- [chalk](https://github.com/chalk/chalk)\n\n---\n\nRead [CONTRIBUTING Guide](./CONTRIBUTING.md)\n\nLicense MIT\n\nAuthor: Pranshu Chittora\n\n[Github](https://github.com/pranshuchittora/)\n[Twitter](https://twitter.com/pranshuchittora)\n[LinkedIn](https://www.linkedin.com/in/pranshuchittora/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpranshuchittora%2Fautarky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpranshuchittora%2Fautarky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpranshuchittora%2Fautarky/lists"}