Repository navigation
Remote Taskfiles experiment #1317
Description
Warning
All experimental features are subject to breaking changes and/or removal at any time. We strongly recommend that you do not use these features in a production environment. They are intended for testing and feedback only.
Note
You can view the Remote Taskfiles experiment documentation on our website, including instructions on how to enable/disable it.
Context
This experiment attempts to solve the problems originally described by #770.
Currently, Task only supports running Taskfiles located on the local filesystem. This makes it difficult to reuse Taskfiles across various repositories and systems without making copies of a file. It would be useful to have a way to run a Taskfile located on a remote system or run a local Taskfile that includes one on a remote system.
Proposal
This experiment would allow users to run a Taskfiles located elsewhere, such as via HTTP or in a remote Git repository. These remote Taskfiles can either be run directly from the CLI or included by another Taskfile.
We're looking to gather feedback on the current draft, so please feel free to leave your thoughts/comments here.
Decision log / TODOs:
- Refactor nodes as an interface feat: node refactor #1316
- HTTP nodes feat: remote taskfiles (HTTP) #1152
- Decide between go-getter or a native implementation
- No go-getter for now. We can re-evaluate later
- How to handle security (remote files that change etc)
- Caching (
--download/--offlineflags or similar) - Implement
--yesflag on prompts feat: unify prompts #1344 - Decide if we should use remote/local files first if both are available feat: prefer remote taskfiles over cached ones #1345
- Consider storing checksums/cached files with a more user-friendly filename feat(remote): prefix checksums/cached files with the filename #1636
- Command to clear the remote cache feat(remote): add a command to clear the cache #1639
- Check that
local->remote->remote:localincludes work correctly feat: enable root remote taskfiles #1347 - Redact credentials in remote URIs Remote taskfile could potentially expose secrets #2100
- Checksum Pinning Checksum pinning #2222
- Support for self-signed certificates Support self-signed certificates for remote taskfiles #2242
- Auto update TTL for cached files Feature Request: Have an auto update ttl for downloaded taskfiles #1402
- Add remote flags as config in Taskfile Feature request: All remote taskfile options in .taskrc config #1403
- Decide how special variables should look for remote files Define behavior for special variables in remote Taskfiles #2267
- Running root remote Taskfiles feat: enable root remote taskfiles #1347
- e.g.
task test --taskfile https://raw.githubusercontent.com/go-task/task/main/Taskfile.yml
- e.g.
- Git Nodes
- e.g.
git@example.com/foo/bar?ref=main//Taskfile.ymlfeat(remote): support include git remote #1652
- e.g.
Metadata
Metadata
Assignees
Labels
Type
Fields
Experiment Status
Projects
- StatusShow more project fieldsreleased
Activity
task-bot commentedon Aug 29, 2023
This issue has been marked as an experiment proposal! 🧪 It will now enter a period of consultation during which we encourage the community to provide feedback on the proposed design. Please see the experiment workflow documentation for more information on how we release experiments.
task-bot commentedon Sep 14, 2023
This experiment has been marked as a draft! ✨ This means that an initial implementation has been added to the latest release of Task! You can find information about this experiment and how to enable it in our experiments documentation. Please see the experiment workflow documentation for more information on how we release experiments.
wburningham commentedon Sep 15, 2023
If one wants to use remote tasks in CI how does one bypass the prompt when running a task for the first time. Is there a flag or environment variable that can be set to “force yes” to the prompt on whether or not to include the remote task file?
BTW thanks for a great experiment!
wburningham commentedon Sep 15, 2023
The documentation mentions the
-yflag for tasks that require prompts, but the experimental documentation doesn't mention if that also applies to remote taskfile includes.pd93 commentedon Sep 15, 2023
@wburningham Thanks for pointing this out. The
--yesflag has not currently been set up to automatically accept the remote task prompts. This is definitely something we can consider in the next iteration. I think this is an acceptable change, but if anyone has any security concerns about being able to skip the remote taskfile warning prompts, please add a comment.oliver-helix commentedon Sep 15, 2023
For Running root remote Taskfiles, consider specifying the remote taskfile via the
--taskfilearg?task hello --taskfile https://raw.githubusercontent.com/go-task/task/main/Taskfile.yml110 remaining items
docs(spec): triangulate Task remote-Taskfile experiment status (#469)
docs(spec): triangulate Task remote-Taskfile experiment status (#469)
github-actions commentedon Aug 13, 2026
This experiment has been marked as stable! 🤘 This means that the implementation is now final and ready to be released. No more changes will be made and the experiment is safe to use in production! You can find information about this experiment and how to enable it in our experiments documentation. Please see the experiment workflow documentation for more information on how we release experiments.
pd93 commentedon Aug 13, 2026
Just for clarity. This will be included in the next release.
Soon™
github-actions commentedon Aug 18, 2026
This experiment has been released! 🚀 This means that it is no longer an experiment and is available in the latest version of Task. Please see the experiment workflow documentation for more information on how we release experiments.
pd93 commentedon Aug 18, 2026
This is now generally available in Task v3.53.1+! Check out our blog post!