Skip to content

Quote CLI is a command-line–based project proposal tool for freelancers and small business owners! πŸ’°

Notifications You must be signed in to change notification settings

IAmTomShaw/quote-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Quote CLI (TypeScript)

A small, user-focused CLI for generating professional project proposal quotes (estimates) for clients, built with TypeScript.

This tool is ideal for freelancers, consultants, and small agencies who want to generate quick, consistent project estimates directly from the terminal.

Originally this tool was built as a web interface using Streamlit and Python (https://github.com/IAmTomShaw/quotation-agent), however I wanted to explore building a CLI tool using TypeScript and Node.js that could be instantly run from the terminal at any time.

Screenshot Placeholder

⚠️ Prerequisites & Disclaimer

This project requires the GitHub Copilot CLI to be installed and a valid GitHub Copilot subscription.
AI-driven quote generation features will not work without these prerequisites.

You will also need to configure the following when running the CLI for the first time:

  • NOTION_API_KEY
  • NOTION_PAGE_ID
  • EXCHANGE_RATE_API_KEY

These can be set using the /settings command inside the CLI.

πŸ“‹ Features

  • Generate Proposal Quote: Turn client briefs into professional, client-ready project proposals (estimates).
  • List Quotes: View saved templates and previously generated quotes.
  • Persistent Storage: Quotes and templates are saved locally using a lightweight file-based storage (see lib/storage.ts).

Required Third-Party Integrations

  • GitHub Copilot CLI - for AI-assisted quote generation (requires GitHub Copilot subscription)
  • GitHub Copilot SDK - for integrating AI capabilities into projects using the GitHub Copilot CLI
  • Notion API (FREE with a Notion account) - for accessing your pricing information (I store mine in Notion as a document)
  • ExchangeRate-API (FREE) - for currency conversion when generating quotes in different currencies

πŸš€ Getting Started

Requirements:

  • Node.js 18+ and npm

Install dependencies:

npm install

Run in development mode (no build required):

npm run dev

Build for production:

npm run build

Run the CLI directly (after building):

node ./bin/quote.js

Make the command available globally for convenience:

npm link
quote            # now you can run the `quote` command anywhere

⚠️ Disclaimer: You will need to set your NOTION_API_KEY, NOTION_PAGE_ID and EXCHANGE_RATE_API_KEY using /settings when you first run the CLI.

Usage

  • Generate a new quote (example):
/create 2x short-form videos for a social media marketing campaign

# You can converse with the agent to refine the quote like a chatbot

/close # to finish and save the quote
  • List available templates:
/list
  • Open and edit a saved quote:
/list
(Select quote from list using arrow keys + Enter)

πŸ“ Project Structure

.
β”œβ”€β”€ src/                 # TypeScript source
β”‚   β”œβ”€β”€ index.ts         # CLI commands and argument handling
β”‚   β”œβ”€β”€ lib/             # contains small libraries (settings, storage)
β”‚   β”œβ”€β”€ ui/              # terminal output helpers
β”‚   └── agent/           # helper agents and tools
β”œβ”€β”€ assets/              # screenshots and images
β”œβ”€β”€ .gitignore           # git ignore rules
β”œβ”€β”€ README.md            # project documentations
β”œβ”€β”€ tsconfig.json        # TypeScript configuration
└── package.json         # npm package configuration

🀝 Contributing

Contributions are welcome. Suggested workflow:

  1. Fork the repository.
  2. Create a feature branch: git checkout -b feat/my-feature.
  3. Make changes, add tests if appropriate.
  4. Run the build: npm run build.
  5. Open a pull request describing your changes.

Please keep changes focused and include tests or usage examples when adding features.

πŸ“ License

This project is licensed under the MIT License.


Built with ❀️ by Tom Shaw

About

Quote CLI is a command-line–based project proposal tool for freelancers and small business owners! πŸ’°

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •