Repository navigation
Releases: stoicsoft/1marketing-tool-release
Release list
v1.6.0 - Site Audit, rebuilt
New Features
- Site Audit is now a full technical SEO auditor. Crawls of up to 10,000 pages (up from 500) record every URL, link, redirect, image, script and stylesheet, then run 156 checks across indexability, links, redirects, content, sitemaps, robots.txt, hreflang, social tags, duplicates, structured data, Core Web Vitals and AI discoverability.
- Every issue explains why it matters and how to fix it, and names a shared root cause when one link or template is behind hundreds of pages — like a dead footer link or a docs subdomain that no longer exists.
- Health is the share of crawled URLs without errors, so it moves when you fix things.
- See what changed since the last crawl. Each issue shows how many URLs were added, are new, were fixed, or disappeared, with a health trend across crawls. Schedule crawls daily, weekly or monthly, get an alert when health drops or a new error appears, and auto-submit changed pages to IndexNow.
- Explore every URL and link. A Pages explorer with a filter builder and column picker, a Links table with anchor texts, a folder Structure view, a live crawl log, and CSV export of any of them. Save any filter as your own issue that every later crawl checks.
- Optional checks after the crawl.
- JavaScript rendering in a sandboxed browser flags content and links that only appear after scripts run.
- Core Web Vitals from PageSpeed Insights: real-user LCP, INP and CLS for your most-linked pages.
- Search Console traffic flags broken, redirected or noindexed pages that still get clicks, traffic drops and pages that fell out of the top 10.
- Crawl password-protected staging sites. Save the sign-in once per project; the password stays in your system keychain and is only ever sent to that site, over HTTPS.
- Start crawls where links don't reach. Add your own start URLs, or start from every page Search Console shows in search, to find orphan pages and old URLs Google still knows.
- Fix issues with AI. Copy a fix brief, ask the AI CMO for a fix plan, or copy a prompt that lets a coding agent in your site's repository read the issue through the 1MarketingTool MCP tools. A new Site audit tool group lets agents list audits, read issues and URLs, and start crawls.
- Request Google indexing from an issue, and see a URL's history across crawls in its detail panel.
Improvements
- Tune the checks per project: turn a check off, change its level, or adjust limits like title length and slow-page time — the latest crawl is re-checked right away.
- Resume a crawl that stopped early — closed app, Cancel, time limit — from where it ended.
- Old crawls take less space. The last five crawls of each site stay complete; older ones keep their summary, issue counts and trend. Change how many in Settings → Storage. Backups carry site audits as summaries unless you include the full detail.
- Ignoring robots.txt now needs proof you own the site — its Search Console property or your IndexNow key file — otherwise robots.txt is always respected.
- The app now runs on a supported desktop runtime. Its built-in browser engine and runtime moved from a release line that no longer gets security updates (Electron 38) to a current one that does (Electron 44). 1MarketingTool now needs macOS 13 Ventura or later.
- Pages from the web are now decompressed safely. A recently disclosed flaw in the runtime's Brotli decoder could let a malicious website run code on your computer. Site Audit crawls, URL imports, source readers, publishers and connectors no longer pass Brotli responses to that decoder: the app asks sites for gzip instead, and any Brotli a site sends anyway is decoded by a memory-safe decoder. The app's local servers for the MCP bridge, browser extension, sign-in callbacks and LAN sync turn away Brotli-compressed requests.
- The app is harder to tamper with. On macOS and Windows it refuses to start if its bundled code has been modified, it no longer accepts a debugger or Node.js options from outside when it launches, and on macOS it no longer holds the permission to debug other processes. The MCP server keeps working as before.
- Bundled components are updated with the latest security fixes. This includes the networking, update, Git and MCP server libraries the app ships with.
v1.5.1 - Local models, either shape
Bug Fixes
- A local model now gets time to finish on the Anthropic provider too. Point the Anthropic provider's base URL at a model on this computer or your local network — 1LocalAITool answers in that shape as well — and it now waits up to ten minutes, the same as a custom OpenAI-compatible endpoint since 1.5.0, instead of failing after 45 seconds. Hosted Anthropic keeps its usual limit.
- Long pieces from a model on your own machine no longer fail halfway. If you are coming from 1.4.0: a custom OpenAI-compatible endpoint on this computer or your local network — 1LocalAITool, LM Studio, Ollama, or one reached over Tailscale — gets up to ten minutes to answer instead of 45 seconds, so a campaign or article from a model running on a CPU finishes instead of timing out.
v1.4.0 - Signalify and redesign
New Features
-
Find people asking for what you sell — while they're still asking. A new Signalify page under Community listens for your project's keywords on Reddit, X, LinkedIn, Hacker News, Stack Overflow, Quora, forums, and any community domains you add.
- Every matching post lands in a per-project Inbox with a 0–100 intent score and the reasons behind it — recommendation requests, questions, complaints, fresh threads, competitor mentions, and posts with few replies all weigh in.
- Replies are always drafts: draft an answer in place, read it, then post it yourself. Signalify never publishes anything on your behalf.
- A People tab collects the posters behind the signals, so you can filter and shortlist them for outreach.
- Setup is per project: keywords, excluded terms, competitor names, custom domains, per-platform switches, a minimum-score threshold, and a questions-only mode.
- Signals arrive two ways: on-demand scans (key-free public APIs, plus the browser extension searching Reddit, X, LinkedIn, and Quora in background tabs with your own logins), and passive capture while you browse — the extension filters by your keywords inside the tab, so the rest of your browsing never leaves the page.
- A high-intent signal raises an alert, so a hot thread doesn't wait until the next time you open the page.
-
The app now looks and feels like a native desktop tool. The whole interface was rebuilt on the platform's own design language instead of a web-dashboard look.
- On macOS the window controls sit inside a full-height source-list sidebar, and a unified toolbar runs over the content column with the page title centered — there is no separate page header anymore.
- A slim status bar carries your data location, the running job, alerts, zoom, appearance, and version.
- System fonts replace the bundled ones; tables are denser with striped rows, tab strips are segmented controls, statuses are colored dots, and dialogs drop from the toolbar as sheets — in both themes.
- New users start in the light theme, and the appearance toggle lives in the status bar.
-
Sort, filter, and export the Content Library. The library gained a flat table view with sortable columns, status and channel filters, and a one-click CSV export of exactly what you see — UTF-8 safe for spreadsheet apps.
-
Meet the dedicated studios when you outgrow the built-in ones. A dismissible card in Design Studio and AI Video Maker introduces 1DesignTool and 1VideoTool — the StoicSoft apps that go deeper on design and video. A Pro license prefills the loyalty discount on the upgrade page.
Improvements
- Performance pages read like instrument panels. Dashboard, Analytics, Insights, Links, and Index were rebuilt on flat KPI strips with inline sparklines and delta chips, replacing the old stacked cards.
- Content Calendar is easier to scan. A mini month picker jumps to any date, and channel, status, and draft filters with per-channel counts narrow the grid to what you care about.
- The comment queue got the same treatment. Comment panels and the detail view were rebuilt with the new layout and filters.
- Distribution History and Settings were redesigned. History gains the native table-and-filter layout, and Settings sections now carry icons for quicker navigation.
- The browser extension can live where you choose. Pick any folder for it — the app writes the files there, keeps them updated on every launch, and remembers the location in backups.
v1.3.0 - AI MCP - Connect your AI tools to 1MarketingTool
New Features
-
Connect your AI tools to 1MarketingTool from one page. The
onemarketingtoolMCP server moved out of a Settings sub-tab into its own AI Access page under System.- A status card shows whether the local bridge is running, how many tools are connected and exposed, and calls and failures over the last 24 hours — with a master Allow AI tool calls switch on top.
- Connect or disconnect each supported client in one click — Claude Code, Codex, Gemini CLI, Cursor, VS Code, Claude Desktop, Cline, Windsurf, Kiro, Hermes, OpenCode, Antigravity, Kimi Code, Roo Code, Qoder, Trae, Droid, Warp, Augment, Pi, Devin, and more — with a detected state per tool and copy-ready install snippets that carry this machine's real launch command.
- Per-group and per-tool switches decide exactly what an agent may read, write, or publish, and a searchable reference lists every tool with its access level.
- An activity feed records every call an agent makes, filterable down to failures and calls your permissions blocked. The SEO skills installer lives here too.
-
Let agents publish — after a human approves. AI agents can now list your channels, publish library pieces, schedule them for later, list scheduled posts, and cancel them, through a new publishing tool group.
- The guardrail is your choice: allow agents to publish any library piece, or restrict them to approved content only — pieces a person marked approved, posted with the approved text and no rewrites.
- Approval stays a human step inside the app: an Approve button in the piece editor (which saves your pending edits first, so the approval covers what's on screen) and a bulk Approve action in the Content Library that only ever moves drafts forward.
- Agent-initiated posts run through the same path as manual ones, so they appear in the Activity Center, honor project mapping and paused channels, and go through media validation.
-
Post to X as a different account than the app owner. The X channel gained a Connect button: approve the app in a browser signed in to the account you want to post as — a brand handle instead of the developer account that owns the keys — and the tokens are stored on this device. Pasting an owner access token still works when you only post as the app owner.
Improvements
- X channel setup matches the current X console. Fields are renamed to Consumer Key / Consumer Key Secret with one-line hints telling them apart from the OAuth 2.0 Client ID the console also shows, the access-token pair is optional when you use Connect, and the setup guide walks through console.x.com — including where pay-per-use credits actually live.
- Every agent call is logged by name. MCP calls land in Logs → AI and the AI Access activity feed under the tool that ran, and calls refused by your permission switches show as blocked rather than failed.
- The local bridge agents talk to is locked to your tools. It now requires a per-launch token and refuses requests that arrive from a web page, so the publishing tools can't be driven by anything except the clients you connected.
- AI setup links go to the right place. Onboarding, capability setup, and Settings all route to the AI Access page instead of the retired MCP tab.
Bug Fixes
- Clients pointing at an old install reconnect themselves. On launch, saved MCP entries that reference a server script which no longer exists are repointed to the current one — updating the app no longer leaves connected tools silently dead.
- X billing errors name the real problem. An out-of-credits response now identifies the developer account X billed and sends you to console.x.com → Billing → Credits instead of the Event subscriptions page — and tells you to check the Development-to-Production app switch when the balance already looks fine.
v1.2.0 - Multi-Engine Visibility & Image Generation
New Features
-
Track your brand across seven AI answer engines. AI Visibility now covers ChatGPT, Perplexity, Gemini, Claude and Grok alongside Google AI Overview and AI Mode, all asked the same terms in the same run.
- Every engine resolves its own route from what you have connected: DataForSEO, your own model API key with live web search, or a local CLI agent. A badge under each engine says which route it will use before you run, or names what to add when nothing can answer it yet.
- Answers that come from your own key or a local agent cost nothing, so the pre-run estimate only charges for the engines that actually go through DataForSEO. The confirmation now lists Billed engines and On your own keys side by side.
- Local CLI answers are labelled as model memory wherever they appear — that route has no web retrieval, so it is a baseline rather than a live citation.
-
Find the questions where AI already cites you — no term list required. AI Visibility gained a Mentions tab that searches DataForSEO's archive of Google AI Overview and ChatGPT answers for your domain. The questions come back as the result, so you do not have to guess the prompts first.
- Match Cited as source (your domain is linked in the answer) or Named in answer (mentioned in prose, link or not). Filter by Google AI Overview, ChatGPT, or both. Subdomains are included.
- Results roll up into Questions (sorted by how often people ask them inside AI tools), Your pages, and Brands. Open a question to read the archived answer, the ranked sources beside it, and which one is yours.
- Send any question — or the top 20 — into a new tracker so you can keep monitoring it across all seven engines.
- Every search is saved automatically. Reopening one costs nothing and shows what the archive said that day, not what it says now. Mentions is a separate DataForSEO subscription; trackers keep working without it. Perplexity, Claude, Gemini and Grok have no archive, so they stay on Trackers.
-
See whether a visibility move is real or just sampling noise. A tracker can ask each term up to five times per run, and the new Engines tab reports each engine's visibility with a 95% range beside it. A change smaller than that range is noise, not a trend.
- A new Evidence tab shows every stored answer for the selected period with the engine, the route that fetched it, the model that wrote it, and which sample it was.
- The shareable HTML report gained a By engine section carrying the same numbers and ranges.
- A new alert fires when your brand is visible in one engine and effectively absent from another over the same terms.
-
Image Generation is live. Design Studio → Image Generation replaced its coming-soon placeholder: write a prompt, pick a size, and the result lands in your asset library.
- Choose Local AI to run on a CLI subscription you already pay for, or API to use your own provider key. The prompt only leaves the machine on the API route.
- Generate and History are separate tabs, and jobs keep running across navigation and app restarts.
- Picking a CLI that has no image model is now refused up front with the reason, instead of running a full generation and failing on the missing file at the end.
-
A guided tour of how the app actually works. A new button in the top bar — and a card in onboarding — opens a six-chapter walkthrough: where your data lives, projects, making content, shipping it, learning from it, and how the AI runs. Each chapter is animated, jumps straight to the screen it describes, and the tour remembers where you stopped.
Improvements
- Hashnode publishing works again, and setup got shorter. Hashnode moved its API endpoint, which had left the channel failing for everyone; it now points at the live one.
- Test signs you in, names the blog it will publish to, and fills in the Publication ID for you when the account has a single blog — you only paste an ID if you run several.
- A rejected token now says so plainly instead of reading as a billing problem. Publishing still needs a Pro plan on the publication, which is Hashnode's own gate.
- Antigravity joins the local CLI roster. The
agyCLI is detected alongside Claude Code, Codex, Gemini, OpenCode, Amp, Qwen, Hermes, Aider and Grok — select it in the AI CLI picker, choose its model, and install the SEO agent skills into it. - Your own model key is now its own setup step. Onboarding and the capability cards list an AI provider key separately from local CLIs, with what it unlocks: tracking ChatGPT, Claude, Gemini and Perplexity answers on your key instead of paid DataForSEO requests.
Bug Fixes
- Image and video generation no longer fails on Gemini CLI with a "trusted directory" error. The app now marks the scratch folder it created and filled itself as trusted, which was the gate that stopped both the one-shot and session runs.
- Launching the app while it is already running brings your window back. Opening it a second time — from the dock, the taskbar, or a shortcut — now restores and focuses the window you already have instead of doing nothing.
- Reopening a closed window no longer lands on a shut-down database. Parts of the app kept talking to the connection that was closed on the way out; they now pick the live one back up.
v1.1.0 - Period Trends & Multi-Key SEO
New Features
-
See how every number moved with Compare to previous period. The dashboard now measures your selected range against the equal-length window right before it, on by default. Clicks, impressions, average CTR, average position, users, and sessions each show a change chip, and the trend chart and per-site sparklines add a dashed line for the prior period.
- Colors read by outcome, not direction — a falling average position shows as an improvement.
- The comparison appears once a site has been synced for the active range; until then the chips and dashed line simply stay hidden.
-
Keep more than one DataForSEO key and let the app rotate them. Settings → API now holds multiple named DataForSEO keys — add, rename, edit, delete, and balance-check each one on its own.
- Choose Use one key to pick the active key, or Rotate to spread lookups across all of them and automatically skip any key that is out of credit, rate-limited, or failing authentication, so one exhausted key no longer stalls your SEO research.
- Status badges show which keys are healthy at a glance, and the pre-lookup confirmation now shows your live account balance, warns when it can't cover the estimated cost, and links straight to Add credit.
-
Build a campaign brief straight from a web page. New Campaign has a From URL button that pulls the readable text and images of one or more pages into your brief. Paste several URLs at once and each fetches with its own progress and result.
Improvements
- Target AI visibility trackers to any market. The tracker location field is now a searchable picker that accepts custom countries and cities instead of only the seven presets, so results reflect the market you actually care about (for example Vietnam or "Hanoi,Vietnam"). Locations you add are remembered for next time and shown with a country flag.
- Repurposing a page now brings its real photos. Importing or repurposing an article pulls the images from inside the post — including lazy-loaded and high-resolution versions — instead of only the social-share preview, while skipping logos, icons, avatars, and tracking pixels.
Bug Fixes
- A stopped sync stays stopped. Bringing the window back into focus no longer restarts background sync after you have turned it off.
v1.0.0 - Encrypted Cross-Device Sync
New Features
-
Sync your marketing workspace across the machines you already use. Settings → Sync creates an encrypted space that carries workspaces, projects, the content library, assets and designs, video storyboards, the schedule, pipelines, and portable preferences to every participating device. API keys, OAuth tokens, license keys, and other credentials stay in each machine's keychain and never enter the space.
- Three transports, same encrypted records: Nearby on the same Wi-Fi (both apps stay open), an iCloud Drive / OneDrive / Dropbox / Nextcloud / Syncthing folder, or your own S3-compatible bucket (AWS, Cloudflare R2, Backblaze B2, Wasabi, MinIO). There is no StoicSoft cloud.
- Creating a space shows a recovery key once. Store it separately — rejoining later needs the passphrase or that key.
- Each device needs its own Pro entitlement. Devices can share one license or use different Pro licenses; the space never compares them.
- Choose what travels: keep assets, video, scheduling, automations, or preferences device-local. Workspaces and products always sync.
- Automatic mode converges every device in the background. Review & push works like version control — select what to share, fetch incoming changes, apply or skip them.
- Admin, editor, and viewer roles: admins manage devices, merges, and what syncs; editors push and pull; viewers only receive.
- Concurrent edits keep both sides. The Conflicts tab shows the two versions so an admin can keep one.
- Publishing, pipelines, and scheduled trackers run on one assigned automation-owner device, so a second machine never double-fires the same job.
- Media metadata always syncs. Bytes of files in the managed asset library follow the policy you pick: metadata only, download on demand, or keep every file on this device.
-
Re-Generate an entire campaign in one pass. Campaign Results now has Re-Generate all. It opens the same channel settings you use when adding channels, pre-filled from the current pieces — language, output format, account, media — so you can run the set again.
- New versions land beside the current ones in the existing version pickers. Nothing is overwritten.
Improvements
- Adding channels now takes every image and video already on the campaign. New pieces get the full set instead of only the first piece's attachments.
- Over-long X posts are fitted to the character limit. Generation shortens a post that ran long and notes the new length in the generation log, instead of leaving a draft that X will reject.
- Character limits stay out of the post. Threads, Bluesky, and Mastodon pieces no longer mention the count they were asked to honor.
Bug Fixes
- Generated posts no longer open with the agent's working notes. CLI agents — Grok especially — that prefaced copy with "I'll inspect the brief…" or appended "want me to revise?" now have that operator chatter stripped, so the piece starts with the publishable first line.
- Pause on a social pipeline actually stops the next run. Pause now clears the scheduled next-run time instead of only flipping the status, so a paused pipeline stays quiet until you start it again.
v0.15.0 -Automated Pipelines and Web Search
New Features
-
A Social repurpose pipeline that runs without opening New Campaign every time. Pipelines is a dedicated view for watching a source channel, adapting each new post for the destinations you choose, and either saving drafts or scheduling them to publish.
- Configure source, transform, destinations, and delivery in one flow: language, how much detail to keep, output format, poll interval, and whether pieces land as drafts or scheduled posts.
- Run a pipeline on demand, or leave it active so the scheduler picks up new source posts on your interval — hourly through weekly.
- A run log records what was fetched, generated, and scheduled, with the source title and any error, so a quiet failure is readable after the fact.
-
Watch a public URL when the channel API can't list posts. Pipelines can poll a public profile or post URL instead of a connected account — useful for personal Facebook profiles, LinkedIn without read approval, and any channel where a public page is the only source you have.
- The watch is best-effort HTML fetch: private or login-walled pages fail with a clear message rather than empty runs.
-
Watch local folders and turn every new file into content. The Directories tab is now a folder pipeline: point it at folders on your machine, and each new file that lands there becomes a campaign on the next check — no paste, no upload step.
- Choose what counts as one post: every file its own campaign, or every subfolder bundled into one campaign holding all of its files. A bundle waits until every file in it has finished copying, so a folder still being written never publishes half of itself.
- Pick the file types to watch — Markdown, text, data files, images, video — plus any extra extensions you name. A
note.txtsitting next toshot.pngis read as that image's caption brief instead of becoming its own post. - Add notes for the writer describing what lives in those folders and how it should be framed, and they apply to every file the pipeline picks up.
- A live preview in the config shows exactly which files and bundles would be picked up before you save.
- New folders start baselined, so pointing a pipeline at a folder that already holds 400 files does not generate 400 campaigns. Turn "Ignore files that are already there" off when you want a first run to pick up what's already on disk.
- Media is copied into app storage as it's picked up, so a scheduled post survives you moving or deleting the original file.
-
Per-channel overrides inside a folder pipeline. A selected destination shows a summary strip —
EN · Plain text · Balanced— that opens the same inline settings panel used in New Campaign, so one channel can run in two languages, Markdown, and a more detailed voice while the rest keep the pipeline defaults. -
Optional web search while campaign content is generated. A Web switch in the campaign composer lets the content AI look up live sources when writing, instead of only the brief and model knowledge.
- Off by default so ordinary runs stay cheaper and offline-friendly; on when you need current facts, competitor context, or citations.
- Works with BYOK OpenAI, Anthropic, and Gemini hosted search, and with local CLI agents that expose web tools (including Grok).
-
Generation logs that show the search and the sites. When web search runs, Generation Logs open and list each query, then the results as concrete sites — hostname, title when available, and an open link — so you can see what the AI actually looked at.
- Header badges count queries and sites during the run; tool activity expands the log panel if it was collapsed.
-
Grok as a local CLI agent. Grok Build is detected alongside Claude, Codex, Gemini, and the other local agents, selectable for campaign generation, redesign, and the rest of the local AI routes.
- ACP sessions and model selection work the same way as the other supported CLIs.
Improvements
- Jump from a pipeline run to what it produced. A run row in the shared Logs tab now carries Campaign and Distribution actions — the first opens the campaign results for that run's output, the second opens Distribution History already filtered to that pipeline. Runs that produced nothing show no actions.
- Distribution History tells automated pieces apart from hand-run ones. Pieces written by a pipeline carry a Pipeline badge naming the pipeline and the source it came from, and a new Pipeline filter narrows the whole table — counts included — to a single pipeline's output.
- One Logs tab for both pipeline kinds. Social and folder runs share the same history, with wording that matches what actually ran ("Scanning the watched folders…" versus "Checking the source channel…").
- More source channels for pipeline watching. Connected-account sources cover Facebook Pages, X, Instagram, Threads, YouTube, TikTok, Bluesky, and Mastodon where the channel is set up; LinkedIn can still use URL watch when Graph read access isn't available.
- Pipeline config that matches how campaigns already work. Destination channels, language, content detail, and output format reuse the same options you already set in New Campaign, so a pipeline and a one-off campaign stay consistent.
- Campaign drafts and presets remember the Web switch. Turning web search on for a draft survives reloads, and Save preset can store it as the default for new campaigns.
- Open a watched folder from the app. The path under each folder in the pipeline config is a button that reveals it in Finder or Explorer.
Bug Fixes
- The installed app now uses the right typefaces. Fonts ship with the app instead of being fetched on launch, so the packaged build no longer silently falls back to a system font — and a local-first app makes one less network call at startup.
- AI CLIs on Windows that were detected but refused to run. Agents installed as a command shim that forwards to a bundled executable — Claude Code among them — reported "Cannot run Windows command shim safely" instead of launching. They now start correctly.
- Windows agents no longer fail right after a reboot. A cold start could push several CLIs past the version-check timeout at once, showing installed, working agents as errors until you pressed Rescan. Windows now gets a longer window.
v0.14.0 - Repurpose straight from the Content Library
New Features
-
Turn one post you already wrote into every other channel. A Repurpose switch in the campaign composer changes what the source means: instead of a loose brief, it is a finished post, and every channel you select gets a native adaptation of that exact message.
- Pick the channel the post came from — the full channel list, not only the connected ones, because the original may live somewhere the app doesn't publish to.
- The result keeps your story, tone, numbers, names, and links, and rebuilds only the hook, length, and structure for each target. Nothing is invented, and no piece says "as I posted on Facebook".
- Repurposing a Facebook post into X, LinkedIn, and a blog is now one pass rather than four rewrites.
-
Load one of your recent posts instead of pasting it. With Facebook chosen as the source, Load posts lists your recent Page posts — through the same Page mapping publishing uses — and picking one fills the source text and pulls its images in as campaign media.
- Channels without a post-reading API say so plainly and point you at From URL or pasting the text.
-
Pull a post in from its URL. From URL fetches a public post or article, extracts the readable text, and downloads its lead image and in-content images into the campaign's media.
- Facebook post URLs are read as the post itself, not the page furniture and comment thread around it.
- A login-walled post fails with a clear message telling you to paste the text instead of leaving you guessing.
-
Repurpose straight from the Content Library. Every piece row has a Repurpose action that opens New Campaign with that piece as the source, switches to its project, and drops its own channel from the targets — you never regenerate the post you started from.
Improvements
- Repurpose survives the rest of the campaign flow. Regenerating a piece and adding more channels to a finished campaign both keep the source post and its channel, so later pieces read like the first ones rather than drifting back into generic copy.
- Campaign drafts remember the repurpose source. The switch, the source channel, and the imported media are saved with the draft, and older drafts open unchanged.
- Local AI agents can repurpose too. The campaign tool exposed to your CLI agents accepts a repurpose source mode and the originating channel, so an agent can hand over a finished post and get the other channels back.
v0.13.0 - Account Control and ZIP Downloads
New Features
- Skip individual accounts without dropping the channel. Each connected account in New Campaign now has its own Generate switch, so a channel with three accounts can write for two of them and leave the third alone.
- The channel row counts what will actually run — "2/3 accounts" — and a skipped account reads "Skipped for this campaign" instead of showing settings that won't be used.
- The piece count and the cost estimate follow the switches, so the number you see before generating is the number you get.
- Turning every account on a channel off skips that channel entirely, and the choice is saved with the campaign draft.
Improvements
- Download all the media on a piece in one go. A campaign piece with several images or videos attached now saves them as a single ZIP archive from one save dialog, rather than asking where to put each file in turn.
- Files that share a name are numbered inside the archive so nothing is silently overwritten, and the archive is named after the campaign.
- The button reports progress while the archive is built, and a piece with one attachment still downloads as a plain file.