{"id":31853533,"url":"https://github.com/programie/folderactions","last_synced_at":"2026-07-21T12:34:09.459Z","repository":{"id":220584173,"uuid":"751841972","full_name":"Programie/FolderActions","owner":"Programie","description":"Automatically trigger specific actions like moving specific files in a monitored folder","archived":false,"fork":false,"pushed_at":"2024-02-02T21:37:11.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-21T12:33:54.968Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Programie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-02-02T12:54:58.000Z","updated_at":"2025-05-15T04:19:54.000Z","dependencies_parsed_at":"2024-02-02T22:28:43.744Z","dependency_job_id":"0b21e4fe-9dec-4017-b0f4-ce7bb9cbf40d","html_url":"https://github.com/Programie/FolderActions","commit_stats":null,"previous_names":["programie/folderactions"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Programie/FolderActions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programie%2FFolderActions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programie%2FFolderActions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programie%2FFolderActions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programie%2FFolderActions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Programie","download_url":"https://codeload.github.com/Programie/FolderActions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programie%2FFolderActions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35724450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-21T02:00:06.728Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-10-12T13:29:47.689Z","updated_at":"2026-07-21T12:34:09.454Z","avatar_url":"https://github.com/Programie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Folder Actions\n\nFolder Actions is a script which executes actions for files in a specific folder (like your downloads folder) and is able to move and sort them based on defined rules.\n\nEach rule is a Python script defining a `Rule` class which then does whatever you want it to do.\n\nAt the heart, it uses [watchdog](https://pypi.org/project/watchdog/) to observe the specified directory and wait for events. Once a new file has been saved into the watched directory, the configured rules will be checked. If a rule matches, the rule will be executed for that file.\n\n## Installation\n\n* Clone this repository into any directory\n* Install the requirements using pip: `pip install -r requirements.txt`\n* Define your rules (see bellow)\n* Execute `folder-actions.py watch /path/to/watch`\n\n## Configuration\n\nThe main configuration is done using a file in YAML format. The configuration should be stored at `~/.config/folder-actions/config.yml`.\n\nTake a look at the [example config.yml](examples/config.yml).\n\n## Defining rules\n\nThe script looks into `~/.config/folder-actions/rules` and loads any Python script. Each script should contain a `Rule` class containing at least a `get_rules()` method returning a list of paths to match.\n\nTake a look into the [examples](examples) folder for some example rule files as well as the [Rule class structure](examples/rule_structure.py).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogramie%2Ffolderactions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogramie%2Ffolderactions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogramie%2Ffolderactions/lists"}