https://github.com/jopemachine-arvis/arvish
Arvis workflow, plugin creator tool
https://github.com/jopemachine-arvis/arvish
arvis arvis-extension arvis-plugin arvis-workflow
Last synced: 9 months ago
JSON representation
Arvis workflow, plugin creator tool
- Host: GitHub
- URL: https://github.com/jopemachine-arvis/arvish
- Owner: jopemachine-arvis
- License: mit
- Created: 2021-05-14T11:11:23.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-10-22T12:49:44.000Z (over 4 years ago)
- Last Synced: 2025-08-20T03:41:25.291Z (10 months ago)
- Topics: arvis, arvis-extension, arvis-plugin, arvis-workflow
- Language: TypeScript
- Homepage:
- Size: 287 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# Arvish
[](https://www.codefactor.io/repository/github/jopemachine/arvish)
[](https://www.codefactor.io/repository/github/jopemachine/arvish)
[](https://github.com/jopemachine/arvish/actions)
[](http://badge.fury.io/js/arvish)
[](http://badge.fury.io/js/arvish)
[](https://lbesson.mit-license.org/)
[](http://makeapullrequest.com)
[](https://GitHub.com/jopemachine/arvish/issues/)
Lib that helps you create [Arvis](https://github.com/jopemachine/arvis) `workflow`, `plugin` more easily.
Arvish has both the Cli tools and libraries needed to create arvis extensions.
Check the below documents for usage.
* [Cli tools for creating arvis-extensions](./documents/cli.md)
* [Libraries for creating workflow](./documents/lib-workflow.md)
* [Libraries for creating plugin](./documents/lib-plugin.md)
## Update notifications
Arvish uses [arvis-notifier](https://github.com/jopemachine/arvis-notifier) in the background to show a notification when an extension update is available.
Tip: If you think you don't need to use notification in your extension, add `arvish.updateNotification` to `false` in `package.json` like below.
```json
{
"arvish": {
"updateNotification": false
}
}
```
## Caching
Arvish offers the possibility of caching data, either with the [fetch](#fetchurl-options) or directly through the [cache](#cache) object.
An important thing to note is that the cached data gets invalidated automatically when you update your extension. This offers the flexibility for developers to change the structure of the cached data between extensions without having to worry about invalid older data.
## Publish extension to npm
By adding `arvish-init` as `postinstall` and `arvish-cleanup` as `preuninstall` script, you can publish your package to [npm](https://npmjs.org). This way, your packages are only one simple `npm install` command away.
```json
{
"name": "arvis-unicorn",
"scripts": {
"postinstall": "arvish-init",
"preuninstall": "arvish-cleanup"
},
"dependencies": {
"arvish": "*"
}
}
```
After publishing your extension to npm, your users can easily install or update the extension.
```
$ npm install --global arvis-unicorn
```
* You can also automatically check your extension validation by adding `prepublishOnly` to `arvish-prepublish`.
## Environment variables
Arvis lets users set environment variables for a extension which can then be used by that extension. This can be useful if you, for example, need the user to specify an API token for a service. You can access the extension environment variables from [`process.env`](https://nodejs.org/api/process.html#process_process_env). For example `process.env.apiToken`.
## alfy
This library is forked from [alfy](https://github.com/sindresorhus/alfy).
So, It has almost same programmatic API with `alfy`.
This means you might simply replace alfred-workflows written in `alfy` with `arvish`.
Note that below differences between arvish and alfy.
* `arvish` does not support `top-await` feature.
* Arvis provides `$PATH` to extension's scripts. So, [run-node](https://github.com/sindresorhus/run-node) is removed in `arvish`.
## Related
- [arvis-linker](https://github.com/jopemachine/arvis-linker) - Make Arvis extensions installable from npm
- [arvis-notifier](https://github.com/jopemachine/arvis-notifier) - Update notifications for Arvis extension
- [alfred-to-arvis](https://github.com/jopemachine/alfred-to-arvis) - Help to convert alfred 4 workflow's info.plist to arvis-workflow.json
- [arvis-extension-validator](https://github.com/jopemachine/arvis-extension-validator) - Arvis extension's JSON schema, cli and library to validate these.
- [arvish-test](https://github.com/jopemachine/arvish-test) - Test your Arvish extensions
- [arvis-store](https://github.com/jopemachine/arvis-store) - Publish and Retrieve Arvis extension info
- [generator-arvis](https://github.com/jopemachine/generator-arvis) - Scaffold out an Arvis extension
## Icon sources
This lib uses below icon sources