Skip to content

stanleygomes/codex-notes

Repository files navigation

Build License GitHub stars GitHub issues TypeScript

πŸ—’οΈ Codex Notes

screenshot

Codex Notes is a powerful plugin for managing notes directly within your IDE. Keep your thoughts, code snippets, and documentation organized without leaving your development environment.

  • Create, edit, delete, rename, and search notes with full markdown support
  • Favorite and assign colors to notes for quick identification and access
  • Sort notes by title, creation date, or favorite status
  • Duplicate notes for easy replication
  • Import notes from external files
  • Export notes to external files
  • Open note file locations in the file system
  • Filter notes by favorites
  • Create notes from selected text in the editor
  • Integrated search via IntelliJ's Search Everywhere
  • Customizable settings for file extension, notes directory, export options, import options, and folder access

🌐 Plugin Marketplace Links

Platform Link
VS Code Visual Studio Marketplace
Antigravity / Cursor Open VSX Registry

πŸ“‹ Table of Contents

πŸš€ Usage

Opening the Tool Window

  • Click on the Codex Notes icon in the left sidebar of your editor;

⌨️ Keyboard Shortcuts

Action Shortcut
Open note Double-click or Enter
Rename note F2
Toggle favorite F
Delete note Delete
Duplicate note Ctrl+D
Export note Ctrl+E
Open location Ctrl+Shift+E

πŸ› οΈ Development

Requirements

- Node.js 22.x+
- VS Code 1.85.0+

Running and Debugging

  1. Open the project in Visual Studio Code.
  2. Install dependencies:
    npm install
  3. Press F5 to start a new VS Code instance with the extension enabled.
  4. To debug the Webview:
    • Open the Codex Notes view.
    • Run the command: Developer: Open Webview Developer Tools from the Command Palette.
  5. To debug the Extension Host:
    • Check the Debug Console in the main VS Code window for logs and errors.
    • Set breakpoints directly in the TypeScript files.

**Available Commands**

| Command                | Description                                    |
| ---------------------- | ---------------------------------------------- |
| `npm install`          | Installs dependencies                          |
| `npm run build`        | Compiles the extension                         |
| `npm run lint`         | Runs ESLint checks                             |
| `npm run test`         | Runs extension tests                           |
| `npm run package`      | Packages the extension for distribution        |
| `npm run publish`      | Publishes the extension to VS Code Marketplace |
| `npm run ovsx:publish` | Publishes to OpenVSX Registry                  |

Coverage reports are generated in `coverage/` and use the `nyc` tool.

## πŸš€ CI/CD

This project uses GitHub Actions for continuous integration and deployment. The following workflows are configured:

### Build Workflow (`build.yml`)

- **Trigger**: Push to `master` branch or pull requests
- **Actions**:
  - Validates conventional commits
  - Builds and validates the VS Code extension (lint, test, package)

### Release Workflow (`release.yml`)

- **Trigger**: Manual dispatch (`workflow_dispatch`)
- **Version auto-detection**: The workflow reads commits since the last `v*` tag and applies semantic versioning rules (breaking change β†’ major, `feat:` β†’ minor, everything else β†’ patch).
- **Jobs**:
  1. `prepare_release` β€” auto-calculates versions, bumps files, updates changelogs, opens a PR targeting `master`, and creates the `v<version>` tag
  2. `publish_vscode` _(conditional)_ β€” packages and publishes to Visual Studio Marketplace and OpenVSX
  3. `create_release` _(conditional)_ β€” creates separate GitHub Releases per plugin and attaches built artifacts

### Deploy Landpage Workflow (`deploy-landpage.yml`)

- **Trigger**: Push to `master` affecting `landpage/**`, or manual dispatch
- **Actions**:
  - Builds and deploys the landing page to Vercel

## πŸ“¦ How to Release

1. Go to **Actions β†’ Release** in the GitHub repository.
2. Click **Run workflow**.
3. The workflow will automatically:
   - Detect the new version from commits since the last release tag using semantic versioning.
   - Bump versions in `package.json`.
   - Update the `CHANGELOG.md` with commit entries.
   - Open a release PR with the generated changes targeting `master`.
   - Create the `v<version>` git tag.
   - Publish to the selected marketplaces.
   - Create separate GitHub Releases per plugin with built artifacts.

## 🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## πŸ“œ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## πŸ”— Links

- [Issue Tracker](https://github.com/stanleygomes/codex-notes/issues)

---

Made with πŸ”₯ by Lumen HQ

About

πŸ—’οΈ A powerful plugin for managing notes within your IDE (vscode, cursor, antigravity)

Topics

Resources

License

Stars

Watchers

Forks

Contributors