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 file for details.

πŸ”— Links

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors