Start Here
Vesper in one sentence
Vesper is a native Python workspace with an interactive Terminal, a private Scripts folder, a mobile-friendly Editor, GitHub repository tools, and an optional bring-your-own-provider AI coding assistant.
The five tabs
Terminal for Python and output. Scripts for local files and GitHub Sync. Editor for code and repository Git Actions. Settings for preferences and AI setup. About for app/runtime information and help.
Your First Vesper Project
- Open Scripts and tap New Script.
- Name it
greetingand tap Create. - Open
greeting.pyand enter:
name = input("What is your name? ") print(f"Hello, {name}! Welcome to Vesper.")
- Tap Save, then Run.
- Vesper opens Terminal. Type your name and submit it.
- Your greeting appears in Terminal. The script stays stored locally.
Terminal
Interactive Python
Enter Python beside the prompt and tap the circular Run Python arrow or press Return. The session is persistent until you reset it.
2 + 2 name = "Vesper" print(f"Hello, {name}!")
Clear vs. Reset
Clear Terminal removes the visible transcript but keeps Python state and history. Reset Python Session reinitializes Python and clears interactive state/history while keeping saved scripts.
Multi-line Python
>>> to .... Continue submitting lines and finish with the normal blank line when needed.History & programming shortcut keys
Script input()
input(), the prompt appears in Terminal and the input field becomes the answer field. Use Cancel Input to cancel a pending request.Stopping code with CTRL-C
KeyboardInterrupt.Scripts Workspace
Your local project shelf
Scripts lists UTF-8 .py files stored in Vesper's local Scripts folder. Tap a file to open it in Editor.
- Create new scripts
- Import one .py file from Files
- Rename or duplicate
- Export or share
- Delete with optional confirmation
from helper import useful_function
Editor
Made for coding on a phone
The Editor supports Python syntax coloring, auto-indent, auto-close pairs, word wrap, monospaced fonts, configurable font size, a programming shortcut row, and a live Lines / Characters / UTF-8 size status bar.
Run automatically saves changed source, switches to Terminal, and executes the script.
Find & Replace
Unsaved changes
Editor options
AI Coding Assistant
Bring your own provider
Built-in support includes OpenAI, Anthropic Claude, and Google Gemini, plus custom OpenAI-, Anthropic-, or Gemini-compatible endpoints.
API keys are stored in the iOS Keychain.
What AI can do in Editor
Review before applying
Fix a Terminal error
Git & GitHub
Repository work inside Vesper
Vesper supports a focused GitHub workflow: connect your account, clone a repository, open and edit its files, create or switch branches, pull, commit changes, and push commits. Pull requests, issues, Actions, and repository administration stay on GitHub.
Connecting to GitHub
- In Scripts, open GitHub Sync.
- On GitHub, create a fine-grained personal access token for the repositories you want to use.
- Give the token Contents: Read and write permission.
- Paste it into GitHub personal access token, then tap Connect to GitHub.
- Confirm your Git author name and email. Vesper uses these details when it creates commits.
Your token is stored only in the iOS Keychain. Do not put a token in a repository URL, source file, commit message, or support email.
Cloning and opening a repository
- Copy the repository’s full HTTPS URL from GitHub, such as
https://github.com/owner/project.git. - Paste it into Repository HTTPS URL under Clone from GitHub.
- Tap Clone Repository. Vesper downloads the repository and opens its repository view.
- Select a supported text file from Files to open it in the normal Vesper Editor.
If the repository has no commits, Vesper identifies it as empty and its file list may be empty until you add and commit content. A repository already cloned into Vesper cannot be cloned to the same local name again.
Working with branches
Open the repository and tap Git Actions. Under Branches, choose an existing branch with Switch Branch, or enter a name such as feature/my-change and tap Create and Switch.
A separate branch is useful but not required for every edit. Save or discard unsaved Editor changes before switching branches or pulling, because those actions update files in the working tree.
Editing repository files
Repository files use the same Vesper Editor as local scripts. You can use syntax highlighting, mobile programming keys, Python execution, the Terminal/REPL, and AI assistance where they apply. Save your file before reviewing Git status or changing branches.
Committing changes
- Make and save your edits.
- Open Git Actions and review Changed Files.
- Under Commit All, enter a meaningful message such as
Fix input validation. - Tap Commit All Changes.
A commit records the current changes in the repository on your device. It does not send them to GitHub.
Pulling and pushing
Use Pull in Git Actions to bring down compatible changes from GitHub. Save or discard open Editor changes first.
After committing, tap Push to send the current branch’s commits to GitHub. Editing changes a file, committing records that work locally, and pushing publishes the commits to the connected GitHub repository.
Example workflow
- Connect to GitHub and clone the repository.
- Create and switch to
feature/my-change. - Open and edit the Python code.
- Run or test the code in Vesper.
- Save, review changed files, and commit with a clear message.
- Push the branch to GitHub.
Settings
Make Vesper yours
Choose Dark or Light appearance, editor and terminal fonts/sizes, indentation, word wrap, syntax highlighting, auto-indent, auto-close brackets, shortcut keys, delete confirmation, and AI provider configuration.
Current implementation note
Privacy & Runtime Limits
Local by default
Your script source stays in Vesper's local workspace unless you explicitly Import, Export, Share, send relevant context in an AI request, or use GitHub Sync. GitHub network actions send repository data directly to GitHub, and AI requests go directly to the provider/endpoint you select.
Python on iOS
Vesper embeds CPython and its bundled standard library. Common pure-Python standard-library modules are the best fit. Do not assume desktop filesystem paths, shell commands, pip, compilers, arbitrary subprocesses, or unsupported native extensions are available.
Troubleshooting
My script looks stuck
input() prompt. If the program is computing, tap CTRL-C to request an interrupt.Variables or imports are acting strangely
run / cat / python cannot find a file
ls, verify the spelling and .py suffix, and confirm the file is in Scripts.AI cannot connect
GitHub cannot connect, clone, pull, or push
https://github.com/owner/project.git URL, save open Editor changes before pulling or switching branches, commit changes before pushing, and verify the repository still exists on GitHub.Command Reference
helpPrint the workspace command list.clearClear the visible transcript.pwdPrint /Scripts.lsList Python scripts alphabetically.cd [path]Accept only Scripts workspace aliases.cat file.pyDisplay saved UTF-8 source.run file.pyRun a saved script.python file.pyAlias for run.resetReset the Python session.versionPrint Vesper and Python version./Scripts. Quoted filenames with spaces are supported: run "my program.py".