https://github.com/itoolio/ishare
experience the clean and unbloated screen capture utility for macOS
https://github.com/itoolio/ishare
hacktoberfest macos macos-app sharex
Last synced: 4 months ago
JSON representation
experience the clean and unbloated screen capture utility for macOS
- Host: GitHub
- URL: https://github.com/itoolio/ishare
- Owner: itoolio
- License: gpl-3.0
- Created: 2023-07-05T07:26:51.000Z (over 2 years ago)
- Default Branch: dev
- Last Pushed: 2025-05-25T19:13:51.000Z (5 months ago)
- Last Synced: 2025-06-10T01:42:14.933Z (4 months ago)
- Topics: hacktoberfest, macos, macos-app, sharex
- Language: Swift
- Homepage: https://isharemac.app
- Size: 3.19 MB
- Stars: 165
- Watchers: 2
- Forks: 13
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
ishare![]()
The definitive screen capture utility for macOS, designed with simplicity and efficiency in mind.
---
## 🚀 Features
Versatile Screen Capture
- **Custom Region**: Instantly and easily define and capture specific portions of your screen.
- **Window Capture**: Capture individual application windows without any clutter.
- **Entire Display Capture**: Snapshot your whole screen with a single action.Flexible Screen Recording
- **Video Recording**: Record videos of entire screens or specific windows.
- **GIF Recording**: Capture your moments in GIF format, perfect for quick shares.
- **Customizable Codecs and Compression**: Fine-tune the parameters of the output video files.Easy Uploading
- **Custom Upload Destinations**: Define your own server or service to upload your media.
- **Built-in Imgur Uploader**: Quickly upload your results to Imgur automatically.High Customizability
- **Custom Keybinds**: Set keyboard shortcuts that match your workflow.
- **File Format Preferences**: Choose the formats for your screenshots (e.g. PNG, JPG) and recordings.
- **Custom File Naming**: Define your own prefix for filenames, so you always know which app took the shot.
- **Custom Save Path**: Decide where exactly on your system you want to save your captures and recordings.
- **Application Exclusions**: Exclude specific apps from being recorded.Automatic Updates
Always stay on the cutting edge with built-in automatic updates.
## 🛠 Custom Uploader Setup
By default, ishare supports and opens `.iscu` files for configuration. They are text files containing JSON data according to the `iscu` spec:
**Note:** Version 2.0.0 introduces breaking changes. Follow the migration guide for updates and consider reinstallation if you encounter issues post-update.
📝 Specification (2.0.0 and newer)
The custom uploader specification since version 2.0.0+ has the following structure:
```json
{
"name": "Custom Uploader Name",
"requestURL": "https://uploader.com/upload",
"headers": { // optional
"Authorization": "Bearer YOUR_AUTH_TOKEN"
},
"formData": { // optional
"additionalData": "value"
},
"fileFormName": "file", // optional
"requestBodyType": "multipartFormData", // optional, can be "multipartFormData" or "binary"
"responseURL": "https://uploader.com/{{jsonproperty}}",
"deletionURL": "https://uploader.com/{{jsonproperty}}", // optional
"deleteRequestType": "DELETE" // optional, can be "DELETE" or "GET"
}
```All properties are case insensitive.
This new specification allows for more dynamic URL construction and handles deletion URLs.
For `responseURL` and `deletionURL`, JSON properties that are derived from the response payload can be defined as `{{jsonProperty}}`. There is support for nesting (`upload.url`) and arrays (`files[0].url`).## ⚙️ Migration from Previous Specification
Click to expand
### Key changes
- `responseURL` replaces `responseProp`.
- New optional field `deletionURL`.
- Updated URL templating syntax.### Migration steps
1. Replace `responseProp` with `responseURL`, ensuring the URL includes placeholders for dynamic values.
2. If your service provides a deletion link, add the `deletionURL` field.
3. Update URL placeholders to match the new syntax:For example,
```json
"responseProp": "fileId"
```Turns into:
```json
"responseURL": "{{fileId}}"
```### Example migration
Before:
```json
{
"name": "uploader",
"requestURL": "https://uploader.com/upload",
"responseProp": "fileUrl"
}
```After:
```json
{
"name": "uploader",
"requestURL": "https://uploader.com/upload",
"responseURL": "{{fileUrl}}" // also supported: "https://uploader.com/{{fileId}}"
}
```## 📤 Compatible Uploader Services
ishare is confirmed to be compatible with the following upload services:
- [chibisafe](https://github.com/chibisafe/chibisafe)
- [copyparty](https://github.com/9001/copyparty)
- [lumen](https://github.com/ChecksumDev/lumen)
- [zipline](https://github.com/diced/zipline)
- [discord webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)## 🤝 Contributors
[](https://github.com/castdrian/ishare/graphs/contributors)
## 🙌 Credits
- Special thanks to [Inna Strazhnik](https://www.behance.net/strazhnik) for the app icon
## 📜 License
Released under [GPL-3.0](/LICENSE) by [@castdrian](https://github.com/castdrian)