IntelliJ plugin prototype for a simple LLM chatbot.
- Basic chat UI in the tool window
- Sends user messages to an OpenAI-compatible Chat Completions API
- Uses
.envvalues for LLM configuration - Keeps in-session chat history while the tool window is open
- Injects mandatory identity/personality system instructions into every LLM prompt
Saidkick uses two env files:
- Plugin runtime API config from this plugin project's root
.env - Optional identity/tone values from the opened user's project
.env
LLM_BASE_URL=https://api.openai.com/v1
LLM_API_KEY=
LLM_MODEL=gpt-4o-mini
LLM_TIMEOUT_SECONDS=20ASSISTANT_NAME=Saidkick
DEVELOPER_NAME=Developer
ASSISTANT_COLOR=blue
DEVELOPER_COLOR=green
ASSISTANT_PERSONALITY=coach
INACTIVITY_PERIOD=300If values are missing, safe defaults are used.
On startup, if identity values are fully configured, Saidkick greets the developer. If the developer is inactive, Saidkick sends a proactive help message. Saidkick also keeps a counter of saved file changes since the last commit; when this counter goes above 150, it sends a proactive commit reminder generated by the LLM.
Proactive LLM responses are constrained to exactly one sentence and at most 20 words. The saved-file counter resets automatically after a successful commit.
On startup, if any of ASSISTANT_NAME, DEVELOPER_NAME, ASSISTANT_COLOR, DEVELOPER_COLOR, or ASSISTANT_PERSONALITY are missing from the opened project .env, Saidkick sends an unprompted setup message that starts with Hello Developer, I am Saidkick and explains exactly how to define them. ASSISTANT_COLOR and DEVELOPER_COLOR should use color names (for example: red, green, yellow, purple, brown). After updating .env, fully restart the IDE so the plugin reloads the new values.
Personality descriptions used in prompt injection are documented in docs/personality-spec.md.