Skip to content

Commit 0930129

Browse files
Merge pull request #33 from endernoke/ui-ux-patch-1
Mermaid render fix, docs, release prep
2 parents a811ed9 + 354e761 commit 0930129

24 files changed

+351
-212
lines changed

.vscodeignore

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,41 @@
1-
.vscode/**
2-
.vscode-test/**
3-
src/**
1+
# Source control
2+
.git
43
.gitignore
5-
.yarnrc
6-
vsc-extension-quickstart.md
4+
5+
# Source code
6+
src/**
7+
out/test/**
78
**/tsconfig.json
8-
**/eslint.config.mjs
9+
**/.eslintrc.json
910
**/*.map
1011
**/*.ts
11-
**/.vscode-test.*
12+
13+
# Development files
14+
.vscode/**
15+
.vscode-test.mjs
16+
.vscode-test/**
17+
node_modules/**
18+
test/**
19+
live2d-container/node_modules/**
20+
.env
21+
22+
# Build tools and config
23+
.github/**
24+
.azure-pipelines/**
25+
webpack.config.js
26+
**/webpack.config.js
27+
**/tsconfig.json
28+
**/.eslintrc.json
29+
30+
# Documentation and examples
31+
docs/**
32+
examples/**
33+
images/**/*.psd
34+
*.md
35+
!README.md
36+
37+
# Misc
38+
.editorconfig
39+
.prettierrc
40+
.npmrc
41+
.npmignore

README.md

Lines changed: 38 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Cheerleader
22

33
<p align="center">
4-
<img src="assets/cheerleader.svg" alt="Cheerleader" width="50"><br>
4+
<img src="assets/cheerleader.png" alt="Cheerleader" width="50"><br>
55
Supercharge your dev experience with an anime coding companion!
66
</p>
77

@@ -15,84 +15,59 @@ Cheerleader brings a fun, interactive anime assistant to your VS Code environmen
1515
<em>Coding with your anime companion</em>
1616
</p>
1717

18-
### Interactive Anime Companion
18+
- Interactive anime character that floats on your screen and motivates you
1919

20-
- An interactive anime character that floats on your screen and provides encouragement
21-
- Choose from multiple character models to be your coding companion
22-
- Position your cheerleader anywhere on your screen
23-
- Interact with your cheerleader with the mouse or action buttons
20+
- Audio code support and AI assistance such as inline chat, code review, rubber duck debugging that integrates with your editor (like Copilot but entirely voice-based)
2421

25-
### Code Support & AI Assistance
22+
- Get encouraging messages based on your coding activity, console output, build/test results, LSP feedback, and more
2623

27-
- Ask questions about your code using text or voice
28-
- Receive constructive comments, explanations, and suggested edits for your code
24+
- Cheer you up with productivity monitoring, music, and compliments
2925

30-
### Editor Features
31-
32-
- Get encouraging messages based on your coding activity
33-
- Hear cheerful feedback when you complete tasks like builds or tests
34-
- Get recognized for consistent coding sessions
35-
36-
- Monitor your productivity and get gentle reminders when you stray
37-
- Toggle background lofi music to help you focus
38-
- Get motivated when you've been inactive for too long
26+
> For a detailed description of each feature, please refer to [this page](docs/features.md)
3927
4028
## Usage
4129

42-
We will be adding a detailed description of each button on Cheerleader for better readability soon, stay tuned...
43-
44-
### Character Interaction
30+
Some background features can be configured in the sidebar, refer to the [Setup and Configuration](#setup-and-configuration) section below. Other features can be accessed through the overlay UI:
4531

46-
- Click and drag the character to reposition it
47-
- Use the buttons around the character to access features:
48-
- Chat button: Start an inline chat
49-
- Code review button: Review your current file
50-
- Music button: Toggle lofi background music
51-
52-
### Voice Commands
32+
<p align="center">
33+
<img src="assets/screenshots/buttons.png" alt="Try out interactive features" width="600">
34+
<br>
35+
<em>Try out interactive features!</em>
36+
</p>
5337

54-
1. Click on the microphone button or use the `cheerleader.startVoiceInteraction` command
55-
2. Speak your question or request
56-
3. Click "Stop" when you're done speaking
57-
4. Your cheerleader will process your speech and respond both visually and with audio
38+
## Setup and Configuration
5839

59-
### Code Review
40+
### API Keys Management
6041

61-
1. Open a file you want to review
62-
2. Run the `cheerleader.reviewCode` command or click the code review button
63-
3. Cheerleader will analyze your code and provide helpful feedback with voice explanations
42+
You can choose between ElevenLabs **OR** Hugging Face for text-to-speech and speech-to-text features. By default, we use ElevenLabs. ElevenLabs provides free API keys with quite generous usage limits. You can sign up for an account and get your API key from [ElevenLabs](https://elevenlabs.io/).
6443

65-
### Inline Chat
44+
We also support alternative service using [Hugging Face](https://huggingface.co/), which is free to use. You can sign up for an account and get your API key for free. Otherwise, we will use ElevenLabs by default.
6645

67-
1. Open a file you want to discuss
68-
2. Run `cheerleader.inlineChat` , `cheerleader.inlineChatVoice`, or use the inline chat button
69-
3. Ask questions about your code
70-
4. Receive conversational responses, code comments, or detailed explanations
46+
> [!NOTE]
47+
> In future releases, we might consider adding local TTS and STT models to avoid the need for API keys. However, this will make the extension less accessible to many users who do not have the required hardware since these models are quite large.
7148
7249
### Settings
7350

74-
- Access the cheerleader controls from the sidebar
75-
- Configure API keys for text-to-speech and speech-to-text processes
76-
- Switch between different cheerleader characters
77-
- Toggle encouragement features on/off
78-
- Toggle productivity tracking on/off
51+
You can configure the following settings in the sidebar (with cheerleader icon):
7952

80-
### API Keys Management
53+
- **API Keys**: Enter your ElevenLabs or Hugging Face API key for TTS and STT features.
8154

82-
You are required to provide your own ElevenLabs API key for text-to-speech feature. They provide free API keys with quite generous usage limits. You can sign up for an account and get your API key from [ElevenLabs](https://elevenlabs.io/).
55+
- **Copilot Models**: Choose which Copilot models to use for inline chat and code review. Currently, we support `gpt4o`, `gpt4o-mini`, and `claude-3.5-sonnet`. Note that `o1` and `o1-mini` are said to be supported in their documentation but somehow not in reality...
8356

84-
We also offer an alternative speech-to-text service using [Hugging Face](https://huggingface.co/), which is free to use. You can sign up for an account and get your API key for free. Otherwise, we will use ElevenLabs by default.
57+
- **Anime Character**: Choose your favorite anime character from the list. The cheerleader will reload with the new character after a few seconds.
58+
59+
- **Features Toggle**: Enable or disable different features of the cheerleader.
8560

8661
> [!NOTE]
87-
> In future releases, we might consider adding local TTS and STT models to avoid the need for API keys. However, this will make the extension less accessible to many users who do not have the required hardware since these models are quite large.
62+
> In a future release soon you will be able to bring any Live2D model you want by providing a URL. We will also expand the default catalog to include characters other than anime.
8863
8964
## Installation
9065

9166
### VSCode Extensions Marketplace
9267

93-
We will be available on the VSCode Extensions Marketplace soon. For now, you can install from source with the steps below.
68+
We are officially listed on the VSCode Marketplace. Just search for "Cheerleader" in the extensions tab of VSCode and install it from there.
9469

95-
## From Source
70+
### From Source
9671

9772
`node.js` and `npm` are required for installing from source. You can install them from npm's [official website](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).
9873

@@ -129,37 +104,27 @@ We will be available on the VSCode Extensions Marketplace soon. For now, you can
129104

130105
6. Open VSCode and go to the extensions tab. Under more options, select "Install from VSIX" and select the `.vsix` file you just built to install it.
131106

132-
## Extension Settings
107+
## Commands Catalog
133108

134-
Extension settings can be configured in the activity sidebar under the cheerleader icon.
109+
If you wish to execute any of the commands **manually**, you can do so by opening the command palette (Ctrl+Shift+P) and type the command name:
135110

136-
You can configure:
137-
138-
- Your ElevenLabs API key for text-to-speech, Hugging Face API key for speech-to-text
139-
- Copilot models to use (gpt4o, gpt4o-mini, claude-3.5-sonnet), note that o1 and o1-mini are said to be supported on their documentation but somehow not in reality...
140-
- Anime character (takes a few seconds to reload, so be patient)
141-
- Toggle on/off different editor features
142-
143-
> [!NOTE]
144-
> In a future release soon you will be able to bring any Live2D model you want by providing a URL. We will also expand the default catalog to include characters other than anime.
145-
146-
## Commands
147-
148-
- `cheerleader.inlineChatVoice`: Start a voice-based inline chat for the current file
149-
- `cheerleader.reviewCode`: Run a code review on the current file
150-
- `cheerleader.startVoiceInteraction`: Start a voice interaction with the cheerleader
111+
- `cheerleader.launchOverlay`: Launch the cheerleader overlay
112+
- `cheerleader.killOverlay`: Stop the cheerleader overlay
113+
- `cheerleader.inlineChat`: Open a text-based inline chat for the current file
114+
- `cheerleader.inlineChatVoice`: Start a voice-based inline chat for the current file **(Key binding: ctrl/cmd+shift+c)**
115+
- `cheerleader.rubberDuckVoice`: Start a voice-based rubber duck debugging session **(Key binding: ctrl/cmd+shift+d)**
116+
- `cheerleader.reviewCode`: Run a code review on the current file **(Key binding: ctrl/cmd+shift+r)**
117+
- `cheerleader.explainPastedCode`: Explain the pasted code
151118

152119
- `cheerleader.toggleEncouragement`: Toggle encouragement features on/off
153120
- `cheerleader.toggleMonitoringRotting`: Toggle productivity monitoring
154-
- `cheerleader.togglePasteMe`: Toggle paste me feature **(TO BE ADDED)**
121+
- `cheerleader.togglePasteMonitoring`: Toggle paste me feature
155122

156123
The following commands are used for testing and development purposes, categorized under "Testing":
157124

125+
- `cheerleader.record`: Test recording audio
158126
- `cheerleader.testTTS`: Test text-to-speech functionality
159127
- `cheerleader.testEncouragement`: Test encouragement messages
160-
- `cheerleader.startRecording`: Start recording audio
161-
- `cheerleader.stopRecording`: Stop recording audio
162-
- `cheerleader.inlineChat`: Open a text-based inline chat for the current file
163128

164129
## Requirements
165130

assets/cheerleader.png

20.6 KB
Loading

assets/cheerleader.svg

Lines changed: 0 additions & 47 deletions
This file was deleted.

assets/screenshots/buttons.png

892 KB
Loading

docs/features.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Features Breakdown
2+
3+
This document lists in detail each feature of the Cheerleader extension. While it does not act as a developer's guide, it provides a comprehensive overview of the extension's capabilities and how to use them effectively.
4+
5+
> [!NOTE]
6+
> This is still being constructed. We will add more details and examples in the future.
7+
8+
## Copilot features
9+
10+
### Inline Chat
11+
12+
The inline chat feature allows you to have a conversation with the cheerleader while you code. You can ask questions, get explanations, and receive suggestions in real-time. The cheerleader will respond inline, making it easy to follow along with your code.
13+
14+
### Code Review
15+
16+
The code review feature enables the cheerleader to analyze your code and provide feedback. It can identify potential issues, suggest improvements, and help you understand best practices. This feature is particularly useful for learning and improving your coding skills.
17+
18+
### Rubber Duck Debugging
19+
20+
The rubber duck debugging feature allows you to explain your code to the cheerleader as if it were a rubber duck. This technique can help you clarify your thoughts, identify bugs, and gain a deeper understanding of your code. The cheerleader will listen and provide feedback, making the process more interactive and engaging.
21+
22+
## Editor Support
23+
24+
### Encouragements
25+
26+
The cheerleader provides encouragements based on your coding activity. It can recognize when you're making progress, completing tasks, or overcoming challenges. The cheerleader will offer positive reinforcement to keep you motivated and focused. It also reads from the console output, build/test results, and LSP feedback to provide relevant encouragements.
27+
28+
### Music
29+
30+
The cheerleader can play music to enhance your coding experience. We play a random free lo-fi music.
31+
32+
### Explain Pasted Code
33+
34+
The explain pasted code feature allows you to paste code into the cheerleader, and it will provide an explanation of what the code does. This feature is helpful for understanding unfamiliar code snippets or learning new programming concepts.

0 commit comments

Comments
 (0)