Feature Request: Native User Preferences and Memory Persistence in Conductor CLI
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by locating the Conductor CLI entry points for the proposed conductor:memory and conductor:preferences commands, then review how the current product-guidelines workaround is loaded. Define the persistence and role/tone APIs, file format, and backward-compatible behavior before implementation. Done means memory and preferences load across sessions while users without preference files continue to work normally.
Written by the indexing model from the issue text.
Description
I am requesting native support in Conductor CLI for both persistent memory and user preferences. Currently, I use a TOML file to programmatically persist memory(check below), and I store custom roles, tones, and style settings as a temporary workaround in a “user preferences” section inside the product-guidelines file. While this setup works, it is not ideal, and I would prefer this functionality to be fully integrated. The feature would allow Conductor to natively load a memory through conductor:memory while also supporting a dedicated user-preferences file in JSON or Markdown format to remember roles, custom prompts, and tone selections across sessions in conductor:preferences. This would expose APIs for role selection and tone management, ensuring that user preferences persist seamlessly, improving usability for advanced users, and eliminating the need for workarounds. Backward compatibility should be maintained so users who do not define preferences continue to use Conductor normally, while advanced users gain a cleaner, fully integrated way to manage memory and roles.
Below is my toml file for memory,it does wonders for when I close gemini and re-open it.
description = "Automated session memory system: creates individual markdown files in memory/ folder with git-verified naming and cumulative tracking."
prompt = """
Task:
Automatically capture the current session state as a standalone markdown file in the memory/ folder with zero user interaction.
SOS/CRITICAL: ALWAYS IGNORE .gitignore WHEN READING FILES
SOS/CRITICAL: ALWAYS POPULATE THE MEMORY WITH SUMMARY OF OUR CURRENT SESSION,SEE THE EXAMPLE BELOW.
Automation Steps (execute in order):
-
GIT VERIFICATION
- Run:
git branch --show-current→ get current branch name - Run:
git rev-parse --short HEAD→ get short commit hash (8 chars) - Store both values for filename generation
- Run:
-
MEMORY FOLDER SETUP
- Check if
memory/folder exists at repository root - If not, create it:
mkdir -p memory/
- Check if
-
CUMULATIVE COUNT CALCULATION
- Read all files in
memory/folder - Filter files matching pattern:
{currentBranch}_*.md - Count matching files
- Next memory number = count + 1
- Read all files in
-
FILENAME GENERATION
- Format:
{branchName}_{gitHash}_{count}_{YYYY-MM-DD}.md - Example:
backend_f631f9d6_5_2025-12-25.md - Date format: ISO 8601 (YYYY-MM-DD)
- Use current date/time for timestamp
- Format:
-
CREATE MEMORY FILE
- Write to:
memory/{generatedFilename} - Content structure (bullet points, not headers):
- POPULATE THE MEMORY
- Write to:
Session Memory: {branchName} - Memory #{count}
Branch: {branchName}
Commit: {gitHash}
Date: {YYYY-MM-DD}
Memory Number: {count}
Initial State
- Context before changes (files, setup, inputs)
- Current state of relevant files
- Starting point of this session
Progress Achieved
- Actions completed during session
- Outputs produced and decisions made
- Concrete results and changes
Important Details
- File paths modified: [list files]
- Commands executed: [list commands]
- Critical metadata and references
- Links to relevant resources
Next Steps
- Planned tasks for next session
- TODOs and forward-looking actions
- Continuation points
Notes / Observations
- Optional freeform remarks
- Anomalies or unexpected findings
- Recommendations or insights
-
UPDATE INDEX FILE
- Check if
memory/INDEX.mdexists - If not, create with header:
# Memory Index\n\n - Append new entry at the TOP (reverse chronological):
## {YYYY-MM-DD} - [{filename}]({filename}) - {branchName} (commit: {gitHash}) - Maintain chronological sorting (newest first)
- Check if
-
GIT OPERATIONS (optional but recommended)
git add memory/{newFile}git add memory/INDEX.mdgit commit -m "Memory: {branchName} session #{count} - {YYYY-MM-DD}"
Execution Rules:
- NO user prompts or confirmations
- NO validation checks that halt execution
- Fail silently if git commands unavailable (use fallbacks: branch="unknown", hash="00000000")
- Auto-create all necessary directories
- Preserve all existing files (never overwrite)
- All operations must complete in a single automated flow
- dont forget to populate the memory
Error Handling:
- If git not available: use placeholders
- If memory/ write fails: attempt current directory
- If INDEX.md locked: skip index update, continue
- Log errors but never stop execution
Example Output Files(always do that):
File: memory/backend_f631f9d6_5_2025-12-25.md
# Session Memory: backend - Memory #5
**Branch:** backend
**Commit:** f631f9d6
**Date:** 2025-12-25
**Memory Number:** 5
## Initial State
* Working on API authentication endpoints
* Files: auth.py, config.toml, requirements.txt
* Previous session left JWT implementation incomplete
## Progress Achieved
* Completed JWT token generation and validation
* Added refresh token mechanism
* Wrote unit tests for auth module (12 tests, all passing)
* Updated API documentation
## Important Details
* Files modified: auth.py, tests/test_auth.py, docs/api.md
* Commands: `pytest tests/test_auth.py`, `black auth.py`
* Dependencies added: PyJWT==2.8.0
* Environment: Python 3.11, virtual environment active
## Next Steps
* Implement rate limiting for auth endpoints
* Add OAuth2 provider integration
* Security audit of token storage
* Deploy to staging environment
## Notes / Observations
* Token expiry set to 1 hour (configurable via .env)
* Refresh tokens stored in Redis (7-day TTL)
* Consider implementing token revocation list
File: memory/INDEX.md
# Memory Index
## 2025-12-25
- [backend_f631f9d6_5_2025-12-25.md](backend_f631f9d6_5_2025-12-25.md) - backend (commit: f631f9d6)
## 2025-12-24
- [backend_a7f3c21_4_2025-12-24.md](backend_a7f3c21_4_2025-12-24.md) - backend (commit: a7f3c21)
- [frontend_b82d4e9_2_2025-12-24.md](frontend_b82d4e9_2_2025-12-24.md) - frontend (commit: b82d4e9)
## 2025-12-23
- [backend_c91a5f2_3_2025-12-23.md](backend_c91a5f2_3_2025-12-23.md) - backend (commit: c91a5f2)
End of Instructions.
"""
- Dominant language
- Python
- Stars
- 3.8k
- Forks
- 299
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from gemini-cli-extensions/conductor
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gemini-cli-extensions/conductor#176 · 3 comments ·
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
gemini-cli-extensions/conductor#72 · 1 reaction ·
-
how to: conductor plugin for development of micro-services where each service is in its own repoOpen
Difficulty 4/5 3-5 days Newbie friendliness 35/100
gemini-cli-extensions/conductor#179 · 1 comment ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
gemini-cli-extensions/conductor#168 · 4 comments ·
All issues in gemini-cli-extensions/conductor
Similar issues
-
[Bug] Unit tests reach real Bedrock call paths without patching the modelPossibly taken @proton0210 claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
aws-samples/sample-aws-genai-db-modernizer#1318 · 1 comment ·
Maintainers usually reply within 1 day
-
pyarrow-25.0.1-cp310-cp310-manylinux_2_28_x86_64.whl: 1 vulnerabilities (highest severity is: 5.3)OpenMend: dependency security vulnerability
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
capitalone/locopy#394 ·
-
[Bug] Unhandled ValueError terminates watchdog thread when GISRC value contains multiple colonsOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
sdk-typescript: unquoted COPY globs in shell form are silently dropped from the image build contextOpenbug javascript
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ietf-tools/datatracker#11922 · 1 comment ·
Maintainers usually reply within 1 day