Replies: 4 comments 3 replies
-
|
Hey! I wonder what are the intended boundaries of this program. I see examples such as This also is counter to the unix way of doing small programs that can collaborate with each other. Maybe that was not your goal, however the unix way has many benefits. (As a side note, I recommend a great book, The Art of Unix Programming Email accounts and credentials management is another area which I wonder if can be simplified. For example, when using Put another way: why would I want to store credentials in another (application-specific in this case) configuration file? Of course there are some implications of using netrc, see here, but that is a problem the user needs to deal anyway. And if NitroDigest implements storing credentials, would they be encrypted or cleartext? Is there a benefit here over using netrc? Moving on to configuration – I think it is better to keep things flat than nested, which python seem to promote. I think JSON is not the best format for configuration. In regards to naming – I think this is not a big issue, since any command can be aliased to whatever a user desires. I suggest to name it simple and to the point, and not be too abstract or vague about what this program does. These are my quick thoughts on the matter. I did not intend to criticize your design, only to give some ideas and a point of view, so maybe it will be useful. Cheers! |
Beta Was this translation helpful? Give feedback.
-
|
Thanks @nestak! valid points
Well, I think I fell into the trap of overengineering. Example: Does this tool really need to read emails? No, a user can use another existing tool (this can be even CURL as you mentioned) that reads emails and just passes text that they want to summarize to nitrodigest
No, I didn't consider it, but after your comments and our conversation on chat, I am close to the approach that Nitrodigest shouldn't read emails at all, so my credentials for email are not needed anymore in this case. In fact, this tool can be simplified to two use cases: nitrodigest <file_text> # make summary of text file
nitrodigest <directory with text files> # make a summary of files in a specific directory Based on that, the value that Nitrodigest offers to the user is:
Again, thanks for your comment and discussion. Chatting with a real person gives such huge value that no AI can give 😄 |
Beta Was this translation helpful? Give feedback.
-
|
I found a similar tool, but for summarizing web pages, see https://github.com/dahlia/yoyak They support a few differend backends (models), and define prompt here https://github.com/dahlia/yoyak/blob/main/src/summary.ts May be interesting read. |
Beta Was this translation helpful? Give feedback.
-
|
I implemented many things we discussed here in this PR: #124 Closing this discussion for now. Feel free to reopen if needed or create a new one. Thanks! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello there, I am collecting feedback about NitroDigest CLI, which Is a tool for developers that TLDR emails privately using local LLM (Ollama). More info about the tool in the README
Naming
I want to keep it short and easy to type.
nitrolooks like a good idea. I checked, and there are some existing tools withnitroin the name but I didn't find a CLI tool with an exactnitroname:nitro-cliI wonder if
nitrois a good name, or is too general?The main command will be
nitro email digest, which looks fine.I thought about the
nitrodigestname, but the commandnitrodigest email digestdoesn't look good.CLI commands
All NitroDigest commands follow this pattern:
Where:
<source>is the data source type (email, slack, github, etc.) (in the prototype version there is only email)<command>is the specific action to performGlobal options
These options can be used with any command:
Email source commands
email digest- Process and summarize emailsOptions:
Examples:
email list- List emails in folderOptions:
Examples:
email accounts- Manage email accountsSubcommands:
list- List configured email accountsadd- Add a new email accountOptions:
Example:
remove- Remove an email accounttest- Test connection to an email accountemail folders- Work with email foldersConfiguration for Multi-Source Setup
The configuration structure for multiple sources:
{ "default_source": "email", "default_summarizer": "ollama", "summaries_path": "summaries", "sources": { "email": { "accounts": { "personal": { "default": true, "address": "personal@example.com", "password": "personal-password", "server": "imap.example.com", "port": 993, "default_folder": "INBOX" }, "work": { "address": "work@company.com", "password": "work-password", "server": "mail.company.com", "port": 993, "default_folder": "INBOX" } }, "settings": { "limit": 10, "mark_as_read": true } } }, "summarizers": { "ollama": { "default": true, "model": "mistral", "base_url": "http://localhost:11434", "timeout": 300, "prompt_file": "prompts/email_summary.txt" } } }Email workflow examples
Processing emails from multiple accounts
Email filtering
Ollama configuration
summarizers ollama- Manage Ollama configurationSubcommands:
configure- Configure Ollama settingsOptions:
Examples:
test- Test Ollama connectionExample:
models- Manage Ollama modelsSubcommands:
list- List available modelspull- Pull a new modelinfo- Show details about a specific modelExamples:
If you have any feedback, just write a comment below. Thanks in advance!
Beta Was this translation helpful? Give feedback.
All reactions