index rss mastodon twitter github linkedin email
Álvaro Ramírez
sponsor

Álvaro Ramírez

09 July 2023 chatgpt-shell v0.60.1 updates

Back in April, I shared chatgpt-shell updates, showcasing chatgpt-shell features. It's been a little while, so here's an update with the latest additions.

Like this project? Consider ✨sponsoring✨.

Multi-session support

You can run multiple shell instances independently configured to use different versions or system prompts.

This was biggest recent change. Please report issues.

cat-turtle.gif

Display system prompt and version

The current shell's version and system prompt are now displayed more prominently in both the shell prompt and buffer name.

display.png

With multi-session support, displaying shell details in the buffer name becomes more important as it makes it easier to find shells across your buffer list.

Rename shell buffers

While buffer names are now automatically derived, one can also use chatgpt-shell-rename-buffer to use custom buffer names.

ob-chatgpt-shell improvements

Use :temperature to specify the temperature.

Use :context CONTEXT-NAME to pick and choose which source blocks to aggregate as context. Thank you Thomas Moulia.

Use :preflight t to debug ob-chatgpt-shell execution.

preflight.png

chatgpt-shell-write-git-commit

Adds chatgpt-shell-write-git-commit, so you can generate commit messages using the current region. Thank you Simon Judd.

Approximate context length

chatgpt-shell now uses chatgpt-shell--approximate-context-length to approximate the context size and discard history if necessary. This is pretty experimental but seems to work well enough. It's enabled by default to get some feedback. Please file bugs if needed or send PRs to improve.

S-<return> for multiline input

In addition to C-J to insert multi-line input, S-<return> is also supported. Thank you shouya for the submission.

Welcome message

A welcome message now makes the help much more discoverable for new or sporadic users. Thank you shouya for the suggestion.

welcome.png

Help me

While the README documents the shells and Emacs is self-documenting, we now have a help command to make things a little more discoverable.

help.png

Hello chatgpt-shell-mode and dall-e-shell-mode

Both chatgpt-shell and dall-e-shell are both based on shell-maker and until recently both shared shell-maker-mode as their major mode. This didn't play well with yasnippet. Both shells now enable independent major modes: chatgpt-shell-mode and dall-e-shell-mode. Thank you Daniel Liden for the proposal.

Saving transcript customizations

Make transcript saving more customizable via shell-maker-transcript-default-path and shell-maker-transcript-default-filename. Thank you gnusupport.

New ChatGPT model versions

New OpenAI model versions were recently released and added to chatgpt-shell: gpt-3.5-turbo-0613 and gpt-4-0613. Thanks you Norio Suzuki.

Load awesome prompts

M-x chatgpt-shell-load-awesome-prompts to download and import curated prompts from awesome-chatgpt-prompts. Thank you Daniel Gomez.

awesome.png

ob-async

We had reports that ob-chatgpt-shell didn't play nice with ob-async. Thank you William Medrano for the solution.

Configurable prompts

Functions like chatgpt-shell-describe-code ask ChatGPT to describe the code in region. These functions used hardcoded English prompts. These are now configurable, so users can tweak or translate if preferred. Thank you Norio Suzuki.

  • chatgpt-shell-prompt-header-describe-code
  • chatgpt-shell-prompt-header-refactor-code
  • chatgpt-shell-prompt-header-generate-unit-test
  • chatgpt-shell-prompt-header-proofread-region
  • chatgpt-shell-prompt-header-whats-wrong-with-last-command
  • chatgpt-shell-prompt-header-eshell-summarize-last-command-output