ICE - Integrated Conversational EnvironmentICE (Integrated Conversational Environment) is a flexible, easy-to-use VSCode extension that allows users to experiment with conversational AI using various large language models (LLMs). With ICE, you can easily chat with LLMs, manage conversation histories, and even create custom LLM integrations.
Table of Contents
Features
Basic UsageInstant Chat
Note: You can continue a previous Instant Chat session by running "ICE: Continue Last Instant Chat" from the Command Palette. If you've enabled the Managing Chat Sessions as
|
Variable | Description | Example Output |
---|---|---|
{{ TIME_NOW }} | Current time in 24-hour format | 14:30:45 |
{{ TIME_NOW_12H }} | Current time in 12-hour format | 09:41:23 PM |
{{ DATE_TODAY }} | Today's date in ISO format | 2024-07-22 |
{{ DATE_TODAY_SHORT }} | Today's date in short format | 07/22/24 |
{{ DATE_TODAY_LONG }} | Today's date in long format | July 22, 2024 |
Example usage in a system prompt:
"You are an AI assistant. The current date is {{ DATE_TODAY_LONG }} and the time is {{ TIME_NOW_12H }}.
"
These variables are automatically replaced with their corresponding values when the system prompt is sent to the LLM.
Requirements
To use ICE with the built-in LLM providers, you'll need to provide your own API keys. When you send your first message, ICE will prompt you to enter the necessary configuration details.
Extension Settings & Provider Configuration
You can view and edit provider-specific settings by clicking the provider name in the VSCode status bar and selecting "Configure". Provider code can also be opened from this menu.
Additionally, ICE provides several extension configuration options:
Instant Chat Session Folder
: Specify a custom folder to store Instant Chat sessions. Leave empty to use the default location.Use Previous Provider For New Chat
: When checked, ICE will automatically select the previously used provider when starting a new chat.
You can access these settings through VSCode's settings interface.
Creating Custom Providers
ICE supports custom LLM providers written in JavaScript. Provider scripts use a format similar to Tampermonkey to declare configuration entries.
Take a look at the Built-in Providers for examples.
Known Issues
As ICE is in early development, you may encounter bugs or instability. If you experience any issues, please file a report on the GitHub repository. Pull requests are also welcome!
Planned Enhancements
- [ ] Rendering performance optimizations
- [ ] Search, tagging, and filtering of chat histories
- [ ] Visualization of conversation trees
- [x] In context updating of provider configuration
- [x] UI improvements
Release Notes
0.6.0
- Added new navigation buttons in chat view:
- "Go back" button to restore previous scroll position
- "Back to bottom" button for quick navigation to the latest message
- Introduced message variable support for placeholders in prompts
- Added environment variable support for system prompts
- Added ruler with position markers for improved conversation navigation
- Updated command names for message operations to improve clarity:
- "Duplicate" renamed to "Fork"
- "Toggle Edit" renamed to "Edit"
- Refined config node insertion process to re-link messages instead of creating new branches
- Improved configuration editor selection color for better visibility
0.5.1
- Enabled find widget in chat view
- Improved handling of empty messages
- Improved attachment scroll behavior and message content width
- Improved word wrapping message content when view width is small
- Improved copy button icon color for better visibility
- Improved UI style for backquotes, links, and code blocks
- Improved HTML/custom tag rendering in messages
- Improved editor text color and selection color for dark themes
- Fixed the issue where most recent Instant Chat file not correctly identified
- Fixed the issue where editor cursor might not be visible when using dark theme
- Fixed the issue where the Done button not working for config editor
0.5.0
- Support for showing the previously used provider at the top of the provider list when starting a new chat
- Configuration option for automatically selecting the previously used provider when starting a new chat
- Configuration option for customizing Instant Chat's session folder path
- Important popups, such as the provider selection and API key input, will now persist even if the user clicks outside of them
- Improved stability of the OpenAI-compatible provider when streaming responses
0.4.4
- Limited the height of message editor for better text composition experience
- Updated the press-down feedback for editor action buttons
0.4.3
- Fixed an issue where the context menu may not target the correct chat message on Windows and split view
- Support for custom API URL for built-in Anthropic provider
0.4.2
- Fixed an issue where the submit button did not work in the chat view
0.4.1
- Renamed the project from "FlowChat" to "ICE" (Integrated Conversational Environment)
0.4.0
- Added message snippets for quickly inserting prompts
- Improved color palette for better integration with VSCode themes
- Replaced plain text editor with feature-rich CodeMirror editor for better message composition experience
0.3.1
- Fixed an issue where chat providers were not self-contained, preventing some providers from working
- Improved error handling for the Anthropic Claude provider
- OpenAI provider now has better compatibility with third-party API providers
0.3.0
- Added attachment support for chat messages
- Fixed an issue where the chat view would be reloaded when switching back from other panels
0.2.2
- Fixed an issue where some tags were not rendered correctly in the chat view
0.2.1
- Fixed an issue where custom tags were not being properly rendered in the chat view
- Configuration values with multiple lines are no longer displayed with extra spaces
0.2.0
- Added Instant Chat feature for quickly chatting with LLMs
- Added the ability to quickly edit and switch between configurations in the chat view
- Added Google Gemini provider
- Added ZHIPU GLM provider
- Improved configuration initialization experience
- Improved code block scrolling behavior
- Enhanced error handling and chat provider variable prompt logic
- Fixed an issue where empty assistant messages were not deleted when regenerating responses
- Fixed display issues with configuration update cards for better readability
0.1.0
- Initial release of ICE
- Basic chat functionality with OpenAI, Anthropic, and Poe providers
- Persist conversations as
.chat
YAML files - Custom provider support
Contributing
If you'd like to contribute to ICE, please submit a pull request on GitHub. For major changes, please open an issue first to discuss the proposed changes.