{"id":13418712,"url":"https://github.com/charmbracelet/pop","last_synced_at":"2025-04-29T18:45:11.938Z","repository":{"id":215107397,"uuid":"656839452","full_name":"charmbracelet/pop","owner":"charmbracelet","description":"Send emails from your terminal 📬","archived":false,"fork":false,"pushed_at":"2025-04-21T11:07:59.000Z","size":191,"stargazers_count":2525,"open_issues_count":22,"forks_count":54,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-21T12:24:32.261Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/charmbracelet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-21T18:45:38.000Z","updated_at":"2025-04-21T11:07:56.000Z","dependencies_parsed_at":"2024-04-16T15:01:36.219Z","dependency_job_id":"8640105f-6a99-4b58-ba8c-8ab6f8048a0c","html_url":"https://github.com/charmbracelet/pop","commit_stats":null,"previous_names":["charmbracelet/pop"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fpop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fpop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fpop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fpop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charmbracelet","download_url":"https://codeload.github.com/charmbracelet/pop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251562350,"owners_count":21609532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T22:01:05.904Z","updated_at":"2025-04-29T18:45:11.920Z","avatar_url":"https://github.com/charmbracelet.png","language":"Go","funding_links":[],"categories":["Go","开源类库","\u003ca name=\"email\"\u003e\u003c/a\u003eEmail","开发工具\u0026框架"],"sub_categories":["邮件"],"readme":"# Pop\n\n\u003cp\u003e\n  \u003cimg src=\"https://stuff.charm.sh/pop/pop-logo.png\" width=\"400\" /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://github.com/charmbracelet/pop/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/charmbracelet/pop.svg\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pkg.go.dev/github.com/charmbracelet/pop?tab=doc\"\u003e\u003cimg src=\"https://godoc.org/github.com/golang/gddo?status.svg\" alt=\"Go Docs\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/charmbracelet/pop/actions\"\u003e\u003cimg src=\"https://github.com/charmbracelet/vhs/workflows/build/badge.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nSend emails from your terminal.\n\n\u003cimg width=\"500\" src=\"https://vhs.charm.sh/vhs-5Dyv3pvzB2YwtUSr72LqSz.gif\" alt=\"pop mail text-based client\"\u003e\n\n## Text-based User Interface\n\nLaunch the TUI\n\n```bash\npop\n```\n\n## Command Line Interface\n\n```bash\npop \u003c message.md \\\n    --from \"me@example.com\" \\\n    --to \"you@example.com\" \\\n    --subject \"Hello, world!\" \\\n    --attach invoice.pdf\n```\n\n\u003cimg width=\"500\" src=\"https://vhs.charm.sh/vhs-5Cr6Gt1YVBjxGr9zdS85AO.gif\" alt=\"pop mail command line client\"\u003e\n\n---\n\n\u003cimg width=\"600\" src=\"https://stuff.charm.sh/pop/resend-x-charm.png\" alt=\"Resend and Charm logos\"\u003e\n\nTo use `pop`, you will need a `RESEND_API_KEY` or configure an\n[`SMTP`](#smtp-configuration) host.\n\nYou can grab one from: https://resend.com/api-keys.\n\n### Resend Configuration\n\nTo use the resend delivery method, set the `RESEND_API_KEY` environment\nvariable.\n\n```bash\nexport RESEND_API_KEY=$(pass RESEND_API_KEY)\n```\n\n\n### SMTP Configuration\n\nTo configure `pop` to use `SMTP`, you can set the following environment\nvariables.\n\n```bash\nexport POP_SMTP_HOST=smtp.gmail.com\nexport POP_SMTP_PORT=587\nexport POP_SMTP_USERNAME=pop@charm.sh\nexport POP_SMTP_PASSWORD=hunter2\n```\n\n### Environment\n\nTo avoid typing your `From: ` email address, you can also set the `POP_FROM`\nenvironment to pre-fill the field anytime you launch `pop`.\n\n```bash\nexport POP_FROM=pop@charm.sh\nexport POP_SIGNATURE=\"Sent with [Pop](https://github.com/charmbracelet/pop)!\"\n```\n\u003e **Note**:\n\u003e If you wish to use a resend account without a custom domain, you can use\n\u003e `onboarding@resend.dev` to send emails.\n\n## Installation\n\nUse a package manager:\n\n```bash\n# macOS or Linux\nbrew install pop\n\n# Nix\nnix-env -iA nixpkgs.pop\n\n# Arch (btw)\nyay -S charm-pop-bin\n```\n\nInstall with Go:\n\n```sh\ngo install github.com/charmbracelet/pop@latest\n```\n\nOr download a binary from the [releases](https://github.com/charmbracelet/pop/releases).\n\n## Examples\n\nPop can be combined with other tools to create powerful email pipelines, such as:\n\n- [`charmbracelet/mods`](https://github.com/charmbracelet/mods)\n- [`charmbracelet/gum`](https://github.com/charmbracelet/gum)\n- [`maaslalani/invoice`](https://github.com/maaslalani/invoice)\n\n### Mods\n\nUse [`mods`](https://github.com/charmbracelet/mods) with `pop` to write an email body with AI:\n\n\u003e **Note**:\n\u003e Use the `--preview` flag to preview the email and make changes before sending.\n\n```bash\npop \u003c\u003c\u003c \"$(mods -f 'Explain why CLIs are awesome')\" \\\n    --subject \"The command line is the best\" \\\n    --preview\n```\n\n\u003cimg width=\"600\" src=\"https://vhs.charm.sh/vhs-1O3zo8Nsi2kPVW3vOBw4WH.gif\" alt=\"Generate email with mods and send email with pop.\"\u003e\n\n- [`charmbracelet/mods`](https://github.com/charmbracelet/mods)\n\n### Gum\n\nUse [`gum`](https://github.com/charmbracelet/gum) with `pop` to choose an email to send to and from:\n\n```bash\npop --from $(gum choose \"vt52@charm.sh\" \"vt78@charm.sh\" \"vt100@charm.sh\")\n    --to $(gum filter \u003c contacts.txt)\n```\n\n\u003cimg width=\"600\" src=\"https://vhs.charm.sh/vhs-Et9ooHB6L1XVWDL9U1TfI.gif\" alt=\"Select contact information with gum and send email with pop.\"\u003e\n\n- [`charmbracelet/gum`](https://github.com/charmbracelet/gum)\n\n### Invoice\n\nUse [`invoice`](https://github.com/maaslalani/invoice) with `pop` to generate and send invoices entirely from the command line.\n\n```bash\nFILENAME=invoice.pdf\ninvoice generate --item \"Rubber Ducky\" --rate 25 --quantity 2 --output $FILENAME\npop --attach $FILENAME --body \"See attached invoice.\"\n```\n\n\u003cimg width=\"600\" src=\"https://vhs.charm.sh/vhs-4TRyv82BBDKOutgWdvyshr.gif\" alt=\"Generate invoice with invoice and attach file and send email with pop.\"\u003e\n\n- [`maaslalani/invoice`](https://github.com/maaslalani/invoice)\n\n## Feedback\n\nWe’d love to hear your thoughts on this project. Feel free to drop us a note!\n\n- [Twitter](https://twitter.com/charmcli)\n- [The Fediverse](https://mastodon.social/@charmcli)\n- [Discord](https://charm.sh/chat)\n\n## License\n\n[MIT](https://github.com/charmbracelet/pop/blob/main/LICENSE)\n\n---\n\nPart of [Charm](https://charm.sh).\n\n\u003ca href=\"https://charm.sh/\"\u003e\n  \u003cimg\n    alt=\"The Charm logo\"\n    width=\"400\"\n    src=\"https://stuff.charm.sh/charm-badge.jpg\"\n  /\u003e\n\u003c/a\u003e\n\nCharm 热爱开源 • Charm loves open source\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmbracelet%2Fpop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharmbracelet%2Fpop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmbracelet%2Fpop/lists"}