Skip to main content
ember's start screen: the pixel EMBER_ wordmark, version and environment info, the input bar and the key bar

✦ ember

A modern, beautiful interactive Python shell. IPython's power — magics, history, debugging, extensions — rebuilt around a calm terminal UI.

tests python license

See it in action

ember running in a terminal: cells with results and timing, %timeit, and a typed signature hint

Why ember

  • Readable sessions. Every cell is a block: your code, its output on a rail, and a footer with status, time, result type and Out[N].
  • Help while you type. Completions with type icons, and live signatures with declared and inferred types — greet(name: str, times: int = 1) -> str — even for functions without annotations.
  • Everything you use IPython for. 85 magics, obj?, !shell, session history in SQLite, %autoreload, %debug, %timeit, %prun, top-level await, GUI event loops…
  • Runs IPython code. get_ipython(), IPython.display, custom magics and IPython extensions like line_profiler work unchanged.
  • Feels good. Paste code straight from docs (>>> prompts are stripped), Shift+Enter for new lines, vi or emacs keys, three themes, two layouts.

Install

pip install git+https://github.com/arthurdaquinosilva/ember.git

Or with pipx to get the ember command everywhere without touching your projects:

pipx install git+https://github.com/arthurdaquinosilva/ember.git

Then run ember. Requires Python 3.10+ on macOS or Linux.

Tip: ember runs code with the Python it's installed into. To work with a project's packages, install ember inside that project's virtual environment.

Quick tour

> import json
> data = {"name": "ember", "tags": ["repl", "python"]}
> data?                     # inspect any object (?? shows the source)
> json.*load*?              # wildcard name search
> files = !ls               # shell output as a list with .grep() / .fields()
> %timeit sorted(range(1000))
> %history -g json          # search history across sessions
> %xmode verbose            # tracebacks with local variables
> %help                     # every key, syntax and magic
Enter run the cell (adds a newline while a block is unfinished)
Shift+Enter · Alt+Enter · Ctrl+J insert a newline
Tab / Shift+Tab complete · indent / dedent
→ accept the grey suggestion from history
↑ ↓ · Ctrl+R history · search history
Ctrl+O edit the cell in $EDITOR
Ctrl+C · Ctrl+D clear input / interrupt · exit

Shift+Enter needs a terminal that reports modified keys (iTerm2, WezTerm, Ghostty, kitty, xterm; inside tmux set extended-keys on). Alt+Enter and Ctrl+J work everywhere.

Documentation

Guide What's inside
Features The interface, input syntax, display, errors & debugging, history, shell, GUI and completion
Magic reference All 85 magics with options (generated from the code)
Configuration config.toml, layouts and themes, profiles, startup files, command-line options
IPython compatibility get_ipython(), custom magics, extensions, display protocol, what's different
Releasing How versions are published to PyPI

Command line

ember                        # interactive
ember script.py args…        # run a file (-i to stay interactive afterwards)
ember -m package.module      # run a module
ember -c "print('hi')"       # run a command
ember --profile work --vi --theme nebula --no-startup

Development

git clone https://github.com/arthurdaquinosilva/ember.git && cd ember
python -m venv .venv && .venv/bin/pip install -e '.[dev]'
.venv/bin/python -m pytest              # unit tests
.venv/bin/python scripts/gen_magic_docs.py   # regenerate docs/magics.md
.venv/bin/python scripts/screenshot.py       # re-record docs/assets/demo.svg

ember is built on prompt_toolkit (input and layout), Rich (output), Jedi (completion and signatures) and Pygments (highlighting).

Known limits

  • Terminal only — no Jupyter kernel; images (Image, SVG, %matplotlib inline) show a placeholder.
  • !cmd streams through a pipe, so fully interactive programs (vim, less) should run outside ember.
  • With the real IPython installed, ember leaves it untouched, so libraries calling IPython's own get_ipython() see no shell.

License

MIT © Arthur D'Aquino

Metadata

Release files for ember-shell 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ember-shell 0.2.0
File Size Uploaded
ember_shell-0.2.0.tar.gz 96.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ember-shell 0.2.0
File Interpreter ABI Platform
ember_shell-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 194.8 kB

Release files / ember_shell-0.2.0.tar.gz

Download URL ember_shell-0.2.0.tar.gz
Size 96.3 kB
Tags Source
SHA-256 checksum
How to use checksums
61af20768664e2b711eb7c827ba5372f7229445d4136f0dea4cfa4a6f8f9bd73
BLAKE2b-256 checksum
How to use checksums
35a5c8ea49da7a9cdda4512791c2a34a5b0676d1c7b493a5013d90c977405233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / ember_shell-0.2.0-py3-none-any.whl

Download URL ember_shell-0.2.0-py3-none-any.whl
Size 98.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e05ee5338c6b558af3c4cd7dae16eecf7a19b68add957577ab6a9440a8faf2f3
BLAKE2b-256 checksum
How to use checksums
2934b9dc8096bc3fcbcc8d9e1684c43516bd806583ed44c6cfb42bdb9804f199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page