Features¶
Style provides four functionally separated workspaces that together cover the lifecycle of a style profile: style analysis from texts, application of a profile to new texts, refinement through editing examples, and visualization and management of the profile library. All workspaces share the same profile schema and the same LLM connection.
Use cases¶
- Derive a custom style profile from examples: From a collection of own texts, a structured style profile is generated that captures the linguistic, lexical, pragmatic, and structural characteristics.
- Make style characteristics visible for training purposes: Profiles are visualized graphically and used as reference objects to demonstrate different writing styles.
- Refine a profile through edits: Systematic change patterns are extracted from before-and-after pairs and incorporated into an existing profile.
- Maintain reusable profiles for editorial teams: Profiles are exported as JSON or ZIP, stored, and distributed within a team; recipients can apply them without further preparation.
- Test style transfer experimentally: A source text is converted into several different profiles to evaluate the effect and suitability of the style characteristics.
- Compare an existing style with a desired target style: Own texts are analyzed against examples of a target style or against a plain style description, making the differences explicit.
At a glance¶
- Four functional workspaces: transformation, style analysis, refinement, style overview.
- LLM connection via OpenAI-compatible API, designed for local operation.
- Three paths to profile creation: from texts, from description, from editing pairs.
- Import: TXT, Markdown, DOCX · Export: TXT, Markdown, DOCX, JSON, ZIP.
- Bundled profile library with more than 20 prepared style profiles.
- Token-based volume control for every input.
Style transformation¶
In the transformation workspace, a source text is combined with a selected style profile and passed to the LLM. As the source of the style profile, a stored profile from the library, an uploaded profile (JSON or ZIP), or a directly entered style prompt are available. The source text is either uploaded as a file (TXT, Markdown, DOCX) or entered directly.
- The result and the original are displayed side by side; the result is editable.
- A refinement loop allows transforming again with additional feedback.
- When importing DOCX, headings, lists, and tables are converted into a Markdown representation; on export, the structure is restored accordingly.
- Before each call, the token requirement is checked against the configured upper limit.
Style analysis¶
In style analysis, the system extracts a structured style profile from example texts. Optionally, target texts or a plain description of the desired target style can be added — in that case, source and target style are analyzed separately and the differences are reported.
- The analysis covers the four dimensions linguistics, lexis, pragmatics, and structure as well as 20–30 example sentences as style anchors.
- One mode allows generating a profile exclusively from a textual style description, without uploading example texts.
- The analysis result is editable before export and is converted into a compact transformation prompt on save.
Refinement¶
Refinement sharpens an existing profile through concrete editing examples. The application compares an original with its edited version and derives systematic change rules (e.g., reduction of passive constructions, shortening of long sentences).
- An optionally loaded base profile serves as a starting point; the right column can be pre-filled with the standard transformation of this profile.
- Up to five editing pairs can be analyzed cumulatively; all findings are merged into a refined profile at the end.
- The refined profile is exported as a ZIP package and can be used directly as a new base in the transformation workspace.
Style overview¶
The style overview displays a loaded profile graphically. Numerical characteristics are visualized via text-based bars, categorical characteristics are output with clear labels. In addition, the corresponding transformation prompt is shown, so that profile parameters and the resulting instruction to the LLM can be inspected together.
Data source and model connection¶
The only external interface of the application is the LLM connection. It follows the OpenAI API schema (/v1/chat/completions) and is configurable via environment variables (endpoint URL, API key, model name). In the intended mode of operation, the application connects to a locally operated model (e.g., LM Studio, Ollama with OpenAI adapter); an external LLM service can also be integrated but is not required.
Import and export formats¶
- Import (texts): TXT (plain text), Markdown (structure preserved), DOCX (headings, paragraphs, lists, tables are converted into a Markdown representation).
- Import (profiles): JSON (single profile) and ZIP (profile package with parameters, prompt, and example sentences).
- Export (texts): TXT, Markdown, and DOCX, either only the transformed result or both versions side by side.
- Export (profiles): JSON, single prompt as TXT, or complete ZIP package.
Quality assurance functions¶
- Structured profile schema: Style characteristics are captured in four dimensions and used consistently across all functions, allowing comparison and reuse of profiles.
- Three-path profile creation with iteration: Profiles can be developed from texts, from description, or via editing pairs; multi-stage refinement is explicitly supported.
- Token volume control: Every input is measured before the LLM call; exceedances of the upper limit are detected and reported.
- Editable intermediate results: Both analysis results and transformed texts are editable before they are processed further or exported.
- Fallback logic for profiles: If a profile contains no explicit transformation prompt or if it is overly long, a compact prompt is automatically generated from the structured profile data.
- Separation of profile and application: Profiles are independent, versionable artifacts; a change to a profile does not affect previously generated results.