A tool that automates presentation of software demos.
Project description
CodeAnim
CodeAnim is a tool to help you animate VS Code. It provides methods that enable you to type, move the cursor, and send commands to VS Code. It works by sending keystrokes using the pynput library.
Installation
We recommend install CodeAnim using pipx.
pipx install codeanim
Usage
CodeAnim runs commands from Markdown files where codeanim commands are enclosed in a python codeanim
fence.
Example
Create a Markdown file called codeanim-markdown-demo.md
with the following contents:
# A Markdown Header
Some text to be read.
```python codeanim
# Bring VS Code to the front
vscode.activate()
# Open myfile.py
vscode.focus("myfile.py")
# Insert print("Hello, World!") into myfile.py
write('print("Hello, World!")\n')
# Execute the script
vscode.run()
```
To execute the CodeAnim commands in the Markdown file:
codeanim codeanim-markdown-demo.md
Flags
- Set
-v
or--verbose
to enable verbose mode. Commands will be printed out as they are executed. - Set
--live
to enable presentation mode. In this mode, a wait() will be injected after every codeanim fence.
Development
We use Poetry for development.
git clone https://github.com/shadanan/codeanim.git
cd codeanim
poetry install
Formatting
This project adopts the Ruff formatter and is enforced by a GitHub action.
VS Code
Useful extensions when developing CodeAnim:
Tests
There aren't any unit tests yet. In the tests folder, there is an end-to-end test that uses CodeAnim to open the scratch.py
file, types out some code, and executes it. To run the test:
./e2e-test.sh
Then, validate that it worked by observing that the animation runs, types out:
print("Hello, World!")
And executes the script.
Limitations
CodeAnim currently only works on MacOS because of a dependency on AppleScript, which is used to switch to the VS Code window. Also, many of the commands send Mac specific keystrokes. With some effort, CodeAnim can be made to work on other platforms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for codeanim-0.0.25-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 195e907a39dc5c6cb6d895ea7baf10a23ee5b6cc066f50c64db96604611210d6 |
|
MD5 | 7760fadbc705cea45e09f46a9704db7b |
|
BLAKE2b-256 | 8e95610f8e8359eb83c08abc16ca5cc07d74784df48220da1073f23bec35fa77 |