A CLI tool that remembers where you left off in your coding projects.
iwashere helps you preserve context across coding sessions. When you step away from a project and come back later, you don't have to spend time figuring out where you left off. Just run iwashere and see your last note, active session, and modified files.
- Context Tracking - Save notes about what you're working on
- Git Integration - Automatically captures branch and commit context
- Sessions - Group related notes into work sessions
- Tags - Organize notes with tags
- Branch Awareness - See notes specific to your current branch
- Status Overview - Quick summary of where you left off
- Team Sharing - Share notes with teammates (encrypted)
git clone https://github.com/Murchoid/iwashere.git
cd iwashere
go build -o iwashere ./cmd/iwashere
sudo mv iwashere /usr/local/bin/# Initialize iwashere in your project
cd /path/to/your/project
iwashere init
# Add a note about what you're working on
iwashere add "Implementing user authentication, next work on JWT validation"
# Later, see where you left off
iwashere status
# View all your notes
iwashere list
# Start a session to group related work
iwashere session start "Authentication feature"
iwashere add "Set up Passport.js"
iwashere add "Configure JWT strategy"
iwashere session end| Command | Description |
|---|---|
iwashere init |
Initialize iwashere in current directory |
iwashere add <message> |
Add a new note |
iwashere show <id> |
Show a specific note |
iwashere list |
List all notes |
iwashere edit <id> |
Edit a note |
iwashere delete <id> |
Delete a note |
| Command | Description |
|---|---|
iwashere tag add <id> <tag> |
Add a tag to a note |
iwashere tag remove <id> <tag> |
Remove a tag from a note |
iwashere tag list [tag] |
List notes by tag |
iwashere branch [name] |
Show notes for current or specified branch |
| Command | Description |
|---|---|
iwashere session start <name> |
Start a new work session |
iwashere session end |
End current session |
iwashere session list |
List all sessions |
iwashere session show <id> |
Show session details |
| Command | Description |
|---|---|
iwashere status |
Show current context (active session, last note, modified files) |
iwashere config |
View or set configuration |
| Command | Description |
|---|---|
iwashere share <id> --with <email> |
Share a note with a teammate |
iwashere share --with @team |
Share with a team (requires team.json) |
iwashere show-shared |
View notes shared with you |
iwashere stores configuration in .iwashere/config.json:
{
"project": {
"name": "myproject",
"init_date": "2024-03-03T10:30:00Z"
},
"storage": {
"type": "json",
"path": "./private"
},
"git": {
"auto_context": true,
"track_branches": true
},
"team": {
"team_name": "backend-team"
}
}When you run iwashere init, the following structure is created:
your-project/
├── .iwashere/ # Hidden directory (like .git)
│ ├── private/ # Your personal notes (gitignored)
│ └── config.json # Project configuration
├── .iwashere-shared/ # Encrypted shared notes (can be tracked)
└── .gitignore # Automatically updated to hide iwashere folders
- Go 1.21 or later
- Git
# Clone the repository
git clone https://github.com/Murchoid/iwashere.git
cd iwashere
# Build for your current platform
go build -o iwashere ./cmd/iwashere
#or use the build script
# Cross-compile for all platforms
./build.sh- Update version in code
- Create and push a tag:
git tag -a v0.3.1 -m "Release v0.2.0"
git push origin main- Release with goreleaser
goreleaser release --cleanContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details.
- Built with Go
- Inspired by the need to remember context across coding sessions