Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add zoo extension #16153

Merged
merged 10 commits into from
Jan 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions extensions/zoo/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"root": true,
"extends": ["@raycast"]
}
13 changes: 13 additions & 0 deletions extensions/zoo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules

# Raycast specific files
raycast-env.d.ts
.raycast-swift-build
.swiftpm
compiled_raycast_swift

# misc
.DS_Store
4 changes: 4 additions & 0 deletions extensions/zoo/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"printWidth": 120,
"singleQuote": false
}
6 changes: 6 additions & 0 deletions extensions/zoo/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Zoo Changelog

## [Release Zoo Extension] - 2025-01-15

- 🎉 Release of GitHub Gist version 0.1
- 🦄 **Ask Gist** command: Now you can ask AI using your Gist as a prompt.
61 changes: 61 additions & 0 deletions extensions/zoo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Zoo - Interact with AIs with Your Prompt Library with Ease

Zoo allows you to interact with AI models using your own prompt library.
It can perform fast actions using your Github Gist as your prompt library.
🦄 Zoo = XXX Fast Actions + GitHub Gist
You can define unlimited number of your own fast AI actions, which is missing for most Raycast AI extensions.

## Features

- [x] 😻 GitHub Gist Support - Custom your own prompt library with reliable and favorable GitHub Gist.
- [x] 🚀 Fast Actions - Perform fast actions with your prompt library on selected text.
- [x] 🤖 AI Models - Interact with most existing AI models with ease.
- [x] DeepSeek
- [x] OpenAI ChatGPT
- [ ] Google Gemini
- [ ] ...

### Roadmap

- [ ] ♻️ Refactor Code - Refactor code for better performance and maintainability.
- [ ] ⌨️ Ask with extra arguments - Allow users to input extra arguments for the prompt.
- [ ] 📚 Optimize Gist for better prompt use
- [ ] 🎏 Add filter function - Distinguish prompts from normal gists.
- [ ] 🐞 Fix 'Refusing to paginate further as it could cause the extension to run out of memory. Currently using: xx.xxMB`
- [ ] 💾 Get browser content
- [ ] 💸 Accumulate the money cost and show

### Issues

- [ ] 🐞 Fix 'Refusing to paginate further as it could cause the extension to run out of memory. Currently using: xx.xxMB`
```shell
event - changed file package.json
info - entry points [src/search-gists.tsx src/ask-gist.tsx src/create-gist.tsx]
info - compiled entry points
info - generated extension's TypeScript definitions
ready - built extension successfully
17:37:14.476 Refusing to paginate further as it could cause the extension to run out of memory. Currently using: 50.797MB.
17:37:14.476 Refusing to paginate further as it could cause the extension to run out of memory. Currently using: 52.076MB.
```

## How to Use?

The workflow should be like:

1. Create a gist (prompt) as you need, e,g, `Summarize the text`.
2. Select text and call the zoo `ask by prompt on Selected Text` command.
3. choose one prompt from the list (you can use navigate bar to filter prompt).
4. execute the prompt on the selected text; you can copy the result as you want.

<!-- insert a video here-->
![demo gif](./media/demo.gif)

### Getting Started

1. Authenticate Zoo with your GitHub account.
2. Set your `LLM API Key`, `LLM API Endpoint`, and `LLM Model Name` in the configuration as needed.
3. [Optional] Set the model price.

🍻 Enjoy! And please feel free to contribute features/fix!

> Credits: This project is highly inspired by [Github Gist](https://www.raycast.com/koinzhang/github-gist) and [ChatGPT Quick Actions](https://www.raycast.com/alanzchen/chatgpt-quick-actions).
Binary file added extensions/zoo/assets/zoo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/zoo/assets/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/zoo/media/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/zoo/metadata/zoo-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/zoo/metadata/zoo-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/zoo/metadata/zoo-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/zoo/metadata/zoo-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading